我需要按日对查询进行分组,但日期存储为long,我该如何使用SQL?
我需要在多个供应商之间工作 - oracle,db2,sql-server& MySQL的。
由java.util.Date.getTime()生成的long是毫秒 - 我无法更改。
答案 0 :(得分:7)
将日期列除以每天的基本时间单位数,向下舍入。例如,如果基本单位为秒,则必须将日期列除以24 * 60 * 60 = 86400.使用组中的结果值。
请注意,如果您的时间源与天文时间同步(例如,您的系统时钟与NTP同步),则会失败,因为在这种情况下,每隔几年就会添加一个闰秒。如果是这种情况(并且通常是这样)并且您必须确保结果是准确的,那么您必须将日期列转换为字符串或DB支持的日期格式。
这可能意味着添加另一列或视图。