【问题标题】:Compare dates in MySQL比较 MySQL 中的日期
【发布时间】:2010-09-06 13:51:27
【问题描述】:

我想比较数据库中两个给定日期之间的日期。 数据库中的列是 DATETIME,我只想将其与日期格式进行比较,而不是与日期时间格式进行比较。

SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'

执行上述 SQL 时出现此错误:

您的 SQL 语法有错误; 检查对应的手册 您的 MySQL 服务器版本 在附近使用的正确语法 'us_reg_date,120) >= '2000-07-05' AND 转换(CHAR(10),us_reg_date,120)

如何解决这个问题?

【问题讨论】:

    标签: mysql sql comparison


    【解决方案1】:

    你可以试试下面的查询,

    select * from players
    where 
        us_reg_date between '2000-07-05'
    and
        DATE_ADD('2011-11-10',INTERVAL 1 DAY)
    

    【讨论】:

    • 对于来自 google 的人:mysql 中的日期类型采用 yyyy-mm-dd 格式。
    【解决方案2】:

    SQL Server syntax 用于将日期转换为字符串。在 MySQL 中,您可以使用 DATE 函数从日期时间中提取日期:

    SELECT *
    FROM players
    WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'
    

    但是,如果您想利用列 us_reg_date 上的索引,您可能想试试这个:

    SELECT *
    FROM players
    WHERE us_reg_date >= '2000-07-05'
      AND us_reg_date < '2011-11-10' + interval 1 day
    

    【讨论】:

    • 感谢您考虑利用索引。我认为查询不应该有“+间隔1天”子句。
    【解决方案3】:

    这对我有用:

    select date_format(date(starttime),'%Y-%m-%d') from data
    where date(starttime) >= date '2012-11-02';
    

    注意格式字符串'%Y-%m-%d'和输入日期的格式。

    【讨论】:

      【解决方案4】:

      我得到了答案。

      代码如下:

      SELECT * FROM table
      WHERE STR_TO_DATE(column, '%d/%m/%Y')
        BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
          AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
      

      【讨论】:

        【解决方案5】:

        这对我有用:

        select * from table
        where column
        BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
         AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
        

        请注意,我必须从以前的解决方案中更改 STR_TO_DATE(column, '%d/%m/%Y'),因为加载需要很长时间

        【讨论】:

          猜你喜欢
          • 2014-02-27
          • 1970-01-01
          • 2012-12-20
          • 2012-02-20
          • 2016-05-12
          • 2015-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多