如何将日期存储为长时间,如何按天分组?

时间:2010-10-11 08:44:16

标签: sql date group-by

我需要按日对查询进行分组,但日期存储为long,我该如何使用SQL?

我需要在多个供应商之间工作 - oracle,db2,sql-server& MySQL的。

由java.util.Date.getTime()生成的long是毫秒 - 我无法更改。

1 个答案:

答案 0 :(得分:7)

将日期列除以每天的基本时间单位数,向下舍入。例如,如果基本单位为秒,则必须将日期列除以24 * 60 * 60 = 86400.使用组中的结果值。

请注意,如果您的时间源与天文时间同步(例如,您的系统时钟与NTP同步),则会失败,因为在这种情况下,每隔几年就会添加一个闰秒。如果是这种情况(并且通常是这样)并且您必须确保结果是准确的,那么您必须将日期列转换为字符串或DB支持的日期格式。

这可能意味着添加另一列或视图。