【问题标题】:How to search for a date in timestamp field?如何在时间戳字段中搜索日期?
【发布时间】:2013-07-11 19:03:51
【问题描述】:

我有一个数据库和一个具有以下属性的表:

Column: Date 
Type: TIMESTAMP 
Attributes: ON UPDATE CURRENT_TIMESTAMP 
Default: CURRENT_TIMESTAMP

所以每个数据都会以这种格式显示:“2013-07-06 14:32:18”

我正在寻找显示检索“2013-07-06”中的行的 SQL 查询。

我的尝试:

select * from posts where date between "2013-07-05 00:00:00" and "2013-07-07 00:00:00";

【问题讨论】:

    标签: mysql date timestamp


    【解决方案1】:

    您也可以使用它。

    select * from posts where date like "2013-07-05%"
    

    【讨论】:

      【解决方案2】:
      select * from posts where date(date) = "2013-07-06";
      

      【讨论】:

        【解决方案3】:

        使用以下查询

        select * from posts where date >= "2013-07-06 00:00:00" and date < "2013-07-07 00:00:00";
        

        【讨论】:

          【解决方案4】:

          您可以使用 MySQL 的DATE() 函数仅获取您的TIMESTAMP 的日期部分:

          SELECT * FROM posts WHERE DATE(date) = '2013-07-06'
          

          但是,这样的查询不能受益于date 列上的索引(如果存在的话);相反,可以使用如下范围:

          SELECT * FROM posts WHERE date >= '2013-07-06' AND date < '2013-07-07'
          

          MySQL 将在日期文字中隐式添加时间 00:00:00,但如果愿意,您可以显式包含它们。

          请注意,BETWEEN ... AND ... 包含其操作数,因此BETWEEN "2013-07-05 00:00:00" AND "2013-07-07 00:00:00" 将包括2013-07-052013-07-06 上的所有记录以及2013-07-0700:00:00 上的所有记录。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-08-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-10-15
            相关资源
            最近更新 更多