【问题标题】:How can I filter a query by the hour portion of a DateTime field in MySQL?如何按 MySQL 中 DateTime 字段的小时部分过滤查询?
【发布时间】:2012-01-25 15:18:53
【问题描述】:

我需要从表中选择行,例如无论日期如何,时间都是 >= 18:00:00。问题是值是日期时间类型,所以旁边还有日期。例如2012-01-25 18:00:00.

table1
======
row 1:   id='1'   datetime='2012-01-25 18:00:00'
row 2:   id='2'   datetime='2012-01-27 15:00:00'
row 3:   id='3'   datetime='2012-01-30 19:45:00'

我需要选择第 1 行和第 3 行。

有没有办法结合 LIKE 和 >= 来做时间 >= '% 18:00:00' 其中 % 代表任何日期?

【问题讨论】:

    标签: mysql datetime


    【解决方案1】:

    你可以使用TIME()函数:

    WHERE TIME(`datetime`) >= '18:00:00'
    

    【讨论】:

      【解决方案2】:
      select *
      from table1
      where HOUR(datimetime) >= 18
      

      【讨论】:

        【解决方案3】:

        可能是这样的:

        SELECT * 
        FROM yourTable
        WHERE
           EXTRACT(HOUR FROM YourDate)>18
        

        【讨论】:

          猜你喜欢
          • 2013-01-25
          • 1970-01-01
          • 1970-01-01
          • 2023-01-04
          • 1970-01-01
          • 1970-01-01
          • 2018-10-28
          • 2013-10-27
          • 1970-01-01
          相关资源
          最近更新 更多