午夜24小时后的订单

时间:2013-06-27 18:00:01

标签: java mysql hibernate time

我正面临着这个问题。当我从网站包装时间时,我总是得到0:00h或0:30h。这在技术上是在当前日期的开始。但对于人类来说,目前的日期已经结束。

我需要0:00到6:00在一天结束时排序,而不是直接从数据库开始。

我正在使用java,hibernate条件,mysql datetime。 谢谢大家!

1 个答案:

答案 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。