问题描述:
昨天是这样的思路:
时间查询要包含当天的时间,因为时间控件不带时分秒,所有传给后台的查询时间
就不包含零点以后的时间了,所以改成小于第二天的时间
改好测试是可以的,今天无意中测出,输入7.31查不出数据
说明sql中的加1是得不到第二天的,打印的sql什么也查不出,更证实了我的判断
于是网上查阅资料:
在Oralce中:http://blog.csdn.net/hyeidolon/article/details/8290724
在Oralce中我发现有add_months函数,加天数N可以用如下方法实现,select sysdate+N from dual
sysdate+1 加一天
sysdate+1/24 加1小时
sysdate+1/(24*60) 加1分钟
sysdate+1/(24*60*60) 加1秒钟
类推至毫秒0.001秒
加法
select sysdate,add_months(sysdate,12) from dual; --加1年
select sysdate,add_months(sysdate,1) from dual; --加1月
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒
减法
select sysdate,add_months(sysdate,-12) from dual; --减1年
select sysdate,add_months(sysdate,-1) from dual; --减1月
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒
而目前的项目用的是mysql数据库说明以上是不适用的
------------------------------------------------------------------------------------------------------------------------
我查阅mysql日期相关的计算,这样是可以得到第二天的日期:
可以放到是代码中遇到了麻烦,查询报错:
---------------------------------------------------------------------------------------------------------------------------
sql语句走不通,看来只有动代码了,我准备在代码中拼接出“2017-07-31 23:59:59”这种格式出来:
查询的时候列表中的发布时间要小于时间控件截止时间的当天最大时间
思路还是挺简单的,先从map中取出截止时间,然后拼接格式,最后再put进原来的map中去,替换掉以前的sendDateEnd的值
别忘记了修改这块的代码,字符串转date格式要有时分秒
测试下,列表有值,OK,很简单~~