MySQL - 由UNIX_TIMESTAMP分组,用于1970年之前的日期

时间:2017-10-18 12:24:05

标签: mysql sql group-by

我的查询中有一个GROUP BY子句:

SELECT * FROM currency_data
WHERE currency = 'GBP'
GROUP BY UNIX_TIMESTAMP(date) DIV (1440 * 60)
ORDER BY date ASC

这适用于大多数记录,但是我有一些日期<因此,该小组忽略了这些记录。有没有办法让这些小组按照这些记录工作?

我的'日期'列的类型为DATETIME

2 个答案:

答案 0 :(得分:3)

1970年之前没有UNIX TIMESTAMP - 该时间戳为0。 您可以按实际日期分组

在MySQL中,您可以使用它来获得负数:DATEDIFF( STR_TO_DATE('04-07-1968','%d-%m-%Y'),FROM_UNIXTIME(0))*24*36‌​00

答案 1 :(得分:3)

首先,带有$climate_tools code name interactive 1 NA <NA> FALSE 2 NA <NA> FALSE 3 NA <NA> FALSE 4 NA <NA> FALSE 5 NA <NA> FALSE 6 NA <NA> FALSE 7 NA <NA> FALSE 8 NA <NA> FALSE 9 NA <NA> FALSE 10 NA <NA> FALSE 11 NA <NA> FALSE 12 NA <NA> FALSE 13 NA <NA> FALSE 14 NA <NA> FALSE 15 NA <NA> FALSE 16 NA <NA> FALSE 17 NA <NA> FALSE 的{​​{1}}几乎总是错误的。您应该使用聚合函数。

没有理由使用select *。只是做

group by