我有一个带有文本列的数据库,它将日期和时间存储为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')
我也希望在间隔中进行搜索,我希望在搜索日期间隔方面提供一些帮助,因为" normal"方式不起作用。使用以下代码不会产生间隔。
WHERE DATE(DATECOLUM) >= DATE(NOW()) - INTERVAL 7 DAY
有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:1)
您可以尝试:
SELECT date_format(str_to_date(DATECOLUMN, '%d/%m/%Y'), '%d/%m/%Y') AS MyDate, COUNT(*)
FROM TABLE
GROUP BY MyDate
对于间隔和组,您可以尝试:
SELECT COUNT(*), MyDate
FROM TABLE, (
SELECT date_format(str_to_date(DATECOLUMN, '%d/%m/%Y'), '%d/%m/%Y') AS MyDate
FROM TABLE) Tmp
WHERE date_format(str_to_date(MyDate, '%d/%m/%Y'), '%Y-%m-%d') >= NOW() - INTERVAL 7 DAY
GROUP BY MyDate
答案 1 :(得分:0)
那么,
我认为我找到了解决方案并且它的工作非常好。对于那些将来需要它的人:
SELECT DATE_FORMAT(STR_TO_DATE(DATEC_OLUMN , "%d-%m-%Y %H:%i:%S"), "%d/%m/%y") AS date,
COUNT(*)
FROM TABLE_NAME
GROUP BY DATE_FORMAT(STR_TO_DATE(DATE_COLUMN, "%d-%m-%Y %H:%i:%S"), "%d/%m/%y")
上面的代码会将 DD / MM / YYYY HH:MM:SS中的文本列字符串转换为DD / MM / YYYY ,并将其分组并按日期计算