Nug*_*get 29 mysql sql select dateadd
我遇到了DATE_ADDMySQL中的函数问题.
我的请求看起来像这样:
SELECT *
FROM mydb
WHERE creationdate BETWEEN "2011-01-01" AND DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)
Run Code Online (Sandbox Code Playgroud)
问题是,在结果中, - 我认为 - 因为六月只有30天,因为我有7月 1 日的结果,功能不能正常工作.
有没有办法告诉你DATE_ADD工作顺利,并在一个月内采取正确的天数?
Adr*_*iro 57
DATE_ADD在不同月份工作得很好.问题是你要增加六个月,2001-01-01而7月1日应该在那里.
这是你想要做的:
SELECT *
FROM mydb
WHERE creationdate BETWEEN "2011-01-01"
AND DATE_ADD("2011-01-01", INTERVAL 6 MONTH) - INTERVAL 1 DAY
GROUP BY MONTH(creationdate)
Run Code Online (Sandbox Code Playgroud)
要么
SELECT *
FROM mydb
WHERE creationdate >= "2011-01-01"
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)
Run Code Online (Sandbox Code Playgroud)
要进一步学习,请查看DATE_ADD文档.
*编辑以纠正语法
嗯,对我来说这是预期的结果;到 1 月 1 日增加六个月。
mysql> SELECT DATE_ADD( '2011-01-01', INTERVAL 6 month );
+--------------------------------------------+
| DATE_ADD( '2011-01-01', INTERVAL 6 month ) |
+--------------------------------------------+
| 2011-07-01 |
+--------------------------------------------+
Run Code Online (Sandbox Code Playgroud)