【问题标题】:MySQL: Selecting In Between DateTime recordsMySQL:在 DateTime 记录之间进行选择
【发布时间】:2018-01-09 05:38:26
【问题描述】:

我想获取两个日期时间条目之间的记录数。 我的表中有一个名为created_date 的列,其名称为datetime data type

我想选择在2017-01-102017-01-30 之间创建的行

我已经写了以下查询,但它似乎不包含在内

SELECT* FROM table WHERE created_date BETWEEN '2017-01-10' AND '2017-01-30'

【问题讨论】:

  • 这些日期之间没有结果。至少,我们看不见。

标签: mysql sql datetime join crud


【解决方案1】:

您遇到的问题与日期文字 2017-01-31 表示该日期在午夜有关。要解决此问题,请将您的查询表述如下:

SELECT * FROM table WHERE created_date >= '2017-01-10' AND created_date < '2017-01-31';

这表示在2017-01-10 的开头或之后以及在2017-01-31 的开头之前取任何日期。这意味着包括一整天2017-01-30

【讨论】:

    【解决方案2】:

    要获取两个日期之间的记录数,您可以尝试以下查询

    SELECT COUNT(*) 
    FROM tableName
    WHERE date(created_date) >= '2017-01-10' AND date(created_date) <= '2017-01-30'
    

    【讨论】:

    • OP 的查询与您在答案中写的相同。
    • 我不认为它与从DATE 转换为DATETIMEcreated 列相同,这样它将包括日期范围内的所有记录。比较时它将排除time
    【解决方案3】:

    试试这个

    SELECT COUNT(1) 
    FROM tableName
    WHERE Cast(created_date as date) Between Cast('2017-01-10' as date) AND  Cast('2017-01-30' as date)
    

    【讨论】:

    • 会包容吗?
    猜你喜欢
    • 1970-01-01
    • 2011-12-27
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2012-02-02
    • 2014-02-15
    • 2012-08-23
    相关资源
    最近更新 更多