【发布时间】:2015-11-27 17:06:23
【问题描述】:
我有一个带有文本列的数据库,它将日期和时间存储为 DD/MM/YYYY HH:MM:SS(例如:27-11-2015 17:01:53)。
现在我想用 PHP 做一些统计,但我无法解决日期问题。
我想统计所有具有同一天 (DD/MM/YYYY) 的结果,尽管已创建小时。
我已经尝试了很多解决方案,但没有一个可行。
最好的尝试是这个,但给我 NULL 作为日期:
SELECT STR_TO_DATE(DATECOLUMN, '%d/%m/%Y'), COUNT(*)
FROM TABLE
GROUP BY STR_TO_DATE(DATECOLUMN, '%d/%m/%Y')
我也希望基于间隔进行搜索,并且我希望在以这种方式搜索日期间隔时获得一些帮助,因为“正常”方式不起作用。使用下面的代码将无法生成间隔。
WHERE DATE(DATECOLUM) >= DATE(NOW()) - INTERVAL 7 DAY
有人可以帮我解决这个问题吗?谢谢!
【问题讨论】:
-
修复列以正确格式存储日期。当数据库知道正确的存储方式时,不要使用字符串来存储值。
-
代码已经完成。我真的需要在一堆文件中更改我的代码吗?真的没有办法吗?
-
您没有义务使用 RDBMS,但看到您似乎想使用一个...
-
问题是第三方交互将日期读取为 DD/MM/YYYY,所以即使我更改了文件中的日期形式,第三方现在也可以工作,因为我无权访问它。真的没有其他方法可以做到吗?
-
您的格式 ->
DD/MM/YYYY HH:MM:SS与您的example: 27-11-2015 17:01:53不匹配。上次我检查了/!=-。