我正面临着这个问题。当我从网站包装时间时,我总是得到0:00h或0:30h。这在技术上是在当前日期的开始。但对于人类来说,目前的日期已经结束。
我需要0:00到6:00在一天结束时排序,而不是直接从数据库开始。
我正在使用java,hibernate条件,mysql datetime。 谢谢大家!
答案 0 :(得分:1)
您可以在整个应用程序中使用MySql DATETIME
数据类型正确地订购日期和时间。 Java等效类是util.Date
。
根据计算机和电信行业标准,每个日历日的第一毫秒时间为00:00.000。所以,如果你在23:59:51.000上加10秒钟,那么第二天就会得到00:00:01.000。
听起来您的企业有一个不同的,非标准的规则来描述每天的开始和结束,用于此特定显示。没关系。但是你需要非常准确地列举这个规则。午夜在人类努力的许多领域都很重要!
假设您的规则是第二天的某一天的信息从[01:00:00到01:00:00]。
然后你就可以像这样在MySQL查询中选择昨天的记录。
WHERE `timestamp` >= CURDATE() - INTERVAL 1 DAY + INTERVAL 1 HOUR
AND `timestamp` < CURDATE() + INTERVAL 1 HOUR
...
ORDER BY `timestamp`
这将以正确的顺序显示您的资料。它不会显示24:01的时间,但会在23:59之后显示00:01。