美好的一天!
我有SQL日期的问题.我认为主要问题是从时间的角度来看.
在我的计划中,我有一个开始和结束日期,例如2014-01-08和2014-01-10.
在日期库中,我使用了datetime,因此日期分别存储为2014-01-08 00:00:00和2014-01-10 00:00:00.
如果您是用户,今天是结束日期,您可以假设截止日期为午夜.但是,情况并非如此,因为小时,分钟和秒设置为0.
我想问一下,添加小时,分钟和秒的最佳方法是什么,以便结束日期为午夜.
PS.我正在使用Java Sql Date.
INSERT INTO survey_schedule (start_date, end_date) VALUES (startDate, endDate);
startDate和endDate是java.sql.date类型
解决方法:
如上所述,存储为2013-01-10 00:00:00的日期将转换为2013-01-10 23:59:59.999,然后将其作为结束日期.
MySQL的
查询日期时间字段时,可以按如下方式将结束时间提前一天
DATE_ADD('your_datetime_field', INTERVAL 1 DAY)
要么
Java代码
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// rs is ResultSet reference
long dt = rs.getTimestamp("your_datetime_field").getTime();
// pick calendar instance and set time
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(dt);
// this will print `2013-01-10 00:00:00`
System.out.println(sdf.format(calendar.getTime()));
// advance the date by 1 day
calendar.add(Calendar.Date, 1);
// this is print `2013-01-11 00:00:00`
System.out.println(sdf.format(calendar.getTime()));
现在,您也可以与此Calendar对象进行比较.
希望这可以帮助.
标签:java,mysql
来源: https://codeday.me/bug/20190929/1831013.html