【问题标题】:Query Sql Date and Time(CLOSED)查询 Sql 日期和时间(已关闭)
【发布时间】:2013-03-14 16:32:18
【问题描述】:

请帮助我。我有表 A。日期格式是 dd/mm/yy,时间格式是 hh:mm:ss am/pm

╔══════════╦═════════════╦═════════════╦═════════╗
║   DATE   ║    TIME     ║    PHONE    ║ MESSAGE ║
╠══════════╬═════════════╬═════════════╬═════════╣
║ 25/09/07 ║ 01:57:55 PM ║ 62856979898 ║ Tes a   ║
║ 25/09/07 ║ 04:56:51 PM ║ 62856123467 ║ Tes B   ║
╚══════════╩═════════════╩═════════════╩═════════╝

如何查询以查找时间之间日期的数据。

【问题讨论】:

标签: php sql date


【解决方案1】:

这是未在数据库中正确存储数据类型的缺点之一。日期应存储为DATEDATETIME

如果您使用MySQL,您可以使用STR_TO_DATE,它将字符串转换为日期,

SELECT  *
FROM    tableName
WHERE   STR_TO_DATE(CONCAT(date, ' ', time), '%d/%m/%y %h:%i:%s %p') 
        BETWEEN '2007-09-25 13:00:00' AND '2007-09-25 14:00:00'

输出

╔══════════╦═════════════╦═════════════╦═════════╗
║   DATE   ║    TIME     ║    PHONE    ║ MESSAGE ║
╠══════════╬═════════════╬═════════════╬═════════╣
║ 25/09/07 ║ 01:57:55 PM ║ 62856979898 ║ Tes a   ║
╚══════════╩═════════════╩═════════════╩═════════╝

您当前设计的一些缺点:

  • 无法直接比较日期和时间
  • 不能使用索引
  • 等等...

【讨论】:

    【解决方案2】:

    使用BETWEEN关键字

     "SELECT * FROM table_A WHERE date BETWEEN '" . $from_date . "' AND  '" . $to_date . "'"
    

    【讨论】:

    • 那些看起来不像日期字段。此外,最好使用准备好的语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2019-04-27
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多