两个日期之间的SQL

时间:2015-06-20 12:33:01

标签: mysql

我有这个问题:

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)之间的差异有什么问题。

感谢。

3 个答案:

答案 0 :(得分:1)

好像你是按字典顺序比较这些日期。假设event_datedate列,请使用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

尝试更改日期格式