【问题标题】:mysql: get record count between two date-timemysql:获取两个日期时间之间的记录计数
【发布时间】:2011-08-12 19:11:58
【问题描述】:

我在 MySQL 中遇到了一个问题。我想获取两个日期时间条目之间的记录数。
例如:
我的表中有一个名为“created”的列,其数据类型为datetime。

我想统计在“TODAY'S 4:30 AM”和“CURRENT DATE TIME”之间创建的日期时间记录。

我尝试了一些 MySQL 的功能,但仍然没有成功。

你能帮我解决这个问题吗? 谢谢。

【问题讨论】:

    标签: mysql datetime date count


    【解决方案1】:

    可能与:

    SELECT count(*) FROM `table` 
    where 
        created_at>='2011-03-17 06:42:10' and created_at<='2011-03-17 07:42:50';
    

    或使用between:

    SELECT count(*) FROM `table` 
    where 
        created_at between '2011-03-17 06:42:10' and '2011-03-17 07:42:50';
    

    您可以根据需要更改日期时间。可以使用curdate() 或now() 来获取所需的日期。

    【讨论】:

    • 请注意顺序很重要,您需要先写较小的日期时间,然后再写较大的日期时间
    • 如果日期和时间在单独的列上会怎样。
    • 在这种情况下,您需要结合日期和时间条件。例如,如果您想在一天中过滤某个时间,则日期列将具有相等的条件以及具有介于条件之间的时间。在其他情况下,您可以使用 between in date 和 order by time 进行过滤,获取这些日期的所有记录。
    • 如果我们不在查询中指定时间会发生什么,例如:SELECT count(*) FROM table where created_at between '2011-03-10' 和 '2011- 03-17'; ? MySQL 是否自动将时间视为:00:00:00?
    【解决方案2】:
    select * from yourtable where created < now() and created > '2011-04-25 04:00:00'
    

    【讨论】:

      【解决方案3】:
      select * from yourtable 
         where created < now() 
           and created > concat(curdate(),' 4:30:00 AM') 
      

      【讨论】:

        【解决方案4】:

        为了速度,你可以这样做

        WHERE date(created_at) ='2019-10-21'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-14
          • 2020-05-12
          • 2016-09-21
          • 2018-10-22
          • 2021-05-25
          • 2012-10-17
          • 2013-04-16
          相关资源
          最近更新 更多