我有这个问题:
SELECT *
FROM some_table
WHERE id != 1 AND
(event_date BETWEEN '20/06/2015' AND '01/07/2015')
ORDER BY the_date
结果是0。 如果我尝试这个查询:
SELECT *
FROM events
WHERE id != 1 AND
(event_date BETWEEN '20/06/2015' AND '29/06/2015')
ORDER BY the_date
有效。
两个月(Juny和July)之间的差异有什么问题。
感谢。
答案 0 :(得分:1)
好像你是按字典顺序比较这些日期。假设event_date
是date
列,请使用str_to_date
将字符串文字转换为日期:
SELECT *
FROM some_table
WHERE id != 1 AND
(event_date BETWEEN STR_TO_DATE('20/06/2015', '%d/%m/%Y') AND
STR_TO_DATE('01/07/2015', '%d/%m/%Y'))
ORDER BY the_date
答案 1 :(得分:0)
以ISO标准YYYY-MM-DD格式编写日期常量:
SELECT *
FROM some_table
WHERE id != 1 AND
event_date BETWEEN '2015-06-20' AND '2015-07-01'
ORDER BY the_date
答案 2 :(得分:0)
MySQL使用以下数据类型来保存日期:
日期 - 格式YYYY-MM-DD
DATETIME - 格式:YYYY-MM-DD HH:MI:SS
TIMESTAMP - 格式:YYYY-MM-DD HH:MI:SS
尝试更改日期格式