【问题标题】:Selecting date range MySQL with date_format使用 date_format 选择日期范围 MySQL
【发布时间】:2012-10-16 08:41:20
【问题描述】:

我在使用 MySQL 选择日期范围时遇到问题。

SELECT MvtDate,date_format(MvtDate,'%d-%m-%Y')
  FROM (`immmvt`)
 WHERE date_format(MvtDate,'%d-%m-%Y') BETWEEN '01-01-2010' AND '02-01-2010'

mvtDate 类型是日期,如2010-01-01 00:00:00

当我运行查询时,结果适用于日期和月份,但它也会显示其他年份的其他结果。

喜欢01-01-2011

【问题讨论】:

  • 比较DATE时间的日期比你尝试的更好。

标签: mysql date date-format


【解决方案1】:
SELECT MvtDate,date_format(MvtDate,'%d-%m-%Y')
  FROM (`immmvt`)
 WHERE date_format(MvtDate,'%d-%m-%Y') IN ('01-01-2010', '02-01-2010')

【讨论】:

  • 嗯,这是我找到的最佳答案,非常快。
【解决方案2】:

您应该使用STR_TO_DATE,因为您想将string 转换回date

SELECT MvtDate, date_format(MvtDate,'%d-%m-%Y')
FROM  `immmvt`
WHERE MvtDate BETWEEN STR_TO_DATE('01-01-2010','%d-%m-%Y') AND 
                      STR_TO_DATE('02-01-2010','%d-%m-%Y')
仅供参考: DATE_FORMAT() 将日期转换为格式化的字符串表示形式。 STR_TO_DATE() 将格式化字符串转换回日期

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 2019-05-17
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2013-04-02
    • 2011-01-05
    相关资源
    最近更新 更多