问题

在做日期时间范围查询时,需要查询当天时间范围内的数据,如2021-01-05这天的所有记录,

查询时间范围应该是“2021-01-05 00:00:00”至“2021-01-05 23:59:59”之间的数据,若数据库日期格式是timestamp则需要更精确到毫秒,如“2021-01-05 23:59:59.254”。

此时已经不适用add_time>=“2021-01-05 00:00:00” and add_time<=“2021-01-05 23:59:59”的where查询条件了,而且组合起来也有点麻烦。

我们用add_time>=“2021-01-05” and add_time<“2021-01-06” 这样查询更科学,后面不需要带时间,系统或默认从当天最小时间开始。

解决方案

String add_timeA='2021-01-05' ;//起始时间 若传入日期时间格式 '2021-01-05 10:02:11' 也会被转换成yyyy-MM-dd格式

String A_new=Comm.getDateYMDstr(add_timeA);//输出为 '2021-01-05'

String add_timeB='2021-01-05' ;//截止时间

//自增一天,输出为 '2021-01-06'

String B_new=Comm.getDateYMDaddDays(Comm.getDate(add_timeB),1);

//传入到sql语句中使用 注意后面的截止时间要用小于号

//select * from 表 where add_time>=A_new and add_time<B_new

//即 select * from 表 where add_time>='2021-01-05' and add_time<'2021-01-06'

以上使用到的公用方法如下:

// 转换为yyyyMMdd日期格式字符串
public static String getDateYMDstr(String dateStr) {try {return getDateYMD(DateFormat.getDateInstance().parse(dateStr));} catch (ParseException e) {e.printStackTrace();return "";}
}
//String转为Date yyyy-MM-dd格式
public static Date getDate(String dateStr) {SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");Date dt = null;try {dt = sf.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}return dt;
}
// 日期加减天数
public static String getDateYMDaddDays(Date date, Integer days) {try {Calendar c = Calendar.getInstance();c.setTime(date); // 设置当前日期c.add(Calendar.DATE, days); // 日期加1天date = c.getTime();return new SimpleDateFormat("yyyyMMdd").format(c.getTime());} catch (Exception e) {e.printStackTrace();}return null;
}

手记:

//起始日期
String add_timeA= Comm.getString(map.get("add_timeA"));
if(!Comm.IsNullOrEmpty(add_timeA)){map.put("add_time_MoreEqual",Comm.getDateYMDstr(add_timeA));
}
//截止日期
String add_timeB= Comm.getString(map.get("add_timeB"));
if(!Comm.IsNullOrEmpty(add_timeB)){map.put("add_time_Less",Comm.getDateYMDaddDays(Comm.getDate(add_timeB),1));
}

JAVA:日期时间范围查询0点到23点59分59秒之间相关推荐

  1. Oracle 日期时间范围查询

    /* 日期时间范围查询 */---------- 创建日期时间测试表----------------------------------------------------------- create ...

  2. java Date 0时0分0秒_C# 获取某个时间的0点0分和23点59分59秒

    C# 获取某个时间的0点0分和23点59分59秒,具体代码如下所示: C#获取当月第一天和最后一天 当月第一天0时0分0秒: DateTime.Now.AddDays(1 - DateTime.Now ...

  3. oracle日期时间范围查询,Oracle的日期时间范围查询-Oracle

    Oracle日期时间范围查询 Sql代码 /* 日期时间范围查询 */ ---- 创建日期时间测试表-------------------–    www.2cto.com create table ...

  4. 获取当天的0点0分0秒的日期和23点59分59秒的日期

    方法一:也是推荐使用的方法 //可以定义一个函数,函数的参数有小时.分.秒.相比今天的日期,今天就输入0,明天输入1,昨天输入-1,以此类推 //(毫秒是可选参数,可以输入也可以不输入,毫秒的取值范围 ...

  5. Js中Date日期的使用(加一天,加一个月,获取0时0分0秒,23时59分59秒等)

    代码示例如下:(以当前日期new Date()为例.也可以将例中new Date()换成任意Date对象) 1.获取今天的0时0分0秒(常用于开始日期的获取) var startDate= new D ...

  6. Js中Date日期输出不同结果(格式)(加一天,加一个月,获取0时0分0秒,23时59分59秒等)

    代码示例如下:(以当前日期new Date()为例.也可以将例中new Date()换成任意Date对象) 1.获取今天的0时0分0秒(常用于开始日期的获取) var startDate= new D ...

  7. oracle 取今日0时,Oracle 取得当天0时0分0秒和23时59分59秒

    1. 取得当天0时0分0秒 select TRUNC(SYSDATE) FROM dual; 2. 取得当天23时59分59秒(在当天0时0分0秒的基础上加1天后再减1秒) SELECT TRUNC( ...

  8. C# 获取某个时间的0点0分和23点59分59秒

    C#获取当月第一天和最后一天 当月第一天0时0分0秒: DateTime.Now.AddDays(1 - DateTime.Now.Day).Date 当月最后一天23时59分59秒: DateTim ...

  9. 快速获取当天0点0分0秒(00:00:00),23点59分59秒(23:59:59)

    // 利用Apache lang包快速获取凌晨0点0分0秒,23点59分59秒字符串         System.out.println(DateFormatUtils.format(new Dat ...

最新文章

  1. 【转】Service深入分析
  2. html用变量存储颜色信息,我如何使用间隔循环修改HTML Canvas颜色?
  3. selinux= 为 disabled_Selinux安全加固
  4. [postgresql]postgresql自定义函数查询ETL作业依赖的实例
  5. 使用pjsip传输已经编码的视频,源码在github
  6. Web表单设计:点石成金的艺术(美)罗博乌斯基pdf
  7. PCWorld盘点2011科技界15大败笔 索尼居首(图)
  8. 昆仑固件涉密专用计算机,存储处理国家秘密的计算机信息系统按照涉密程序实行...
  9. 判断一个数是否是素数
  10. 【模型理解】KANO模型
  11. Javascript 实现汉字简繁体互相转换
  12. 解决docker+openvpn搭建完成后客户端能连接,但是无法访问互联网或其他机器
  13. 赖特 因果分析_量子至上的赖特的东西
  14. 【stm32f407】硬件介绍
  15. 易语言程序转c语言,c语言实现简单的易语言
  16. 2022-2028全球轴承润滑油行业调研及趋势分析报告
  17. 函数式编程如何破坏了我
  18. 小批量制造企业生产计划
  19. 唐骏:身价10亿不买房 每月12万住宾馆
  20. 家用计算机内存最大是多少,现在电脑内存最大多少

热门文章

  1. 基于matlab的手写体数字识别系统
  2. React使用cra创建项目,开启装饰器
  3. 图片择优算法(模糊图片筛选出最清楚的图片) 没有使用第三方库
  4. nand flash基础——基本结构
  5. 扫地机器人自动回充原理
  6. 游走仙境稻城亚丁,稻城亚丁新攻略
  7. 电大计算机C语言1253,1253《C语言程序设计》电大期末精彩试题及其问题详解
  8. 简述数据中心网络的特点,数据中心网络规划设计
  9. 【音乐可视化】Audacity,一款免费的多轨音频编辑器
  10. 显示计算机名在桌面壁纸,Windows桌面壁纸自动显示计算机详细信息小工具–BgInfo...