两次之间的mysql查询

时间:2019-01-10 18:27:43

标签: php mysql datetime between

我想查询一个mySQL表以从1月10日两次之间提取数据,例如16:00至17:00。但是在我的数据库中,我曾经将日期和时间存储在 strtotime formate 中,而我应该在Mysql中进行存储。

请帮助。谢谢!

数据库映像 https://pasteboard.co/HVPMdqF.png

示例代码:

SELECT * FROM table
WHERE loginTime between UNIX_TIMESTAMP('2019-01-10 16:00') AND UNIX_TIMESTAMP('2019-01-10 18:00')

但是查询不起作用。

1 个答案:

答案 0 :(得分:1)

  

loginTime类型为varchar

这就是麻烦所在。您应该使用适当的日期/时间类型重新设计表格。

同时,您基本上有两个选择。

  1. 也将logintime转换为Unix时间戳。

    WHERE unix_timestamp(logintime) BETWEEN unix_timestamp('2019-01-10 16:00')
                                            AND unix_timestamp('2019-01-10 17:00')
    
  2. 或比较字符串。

    WHERE logintime BETWEEN '2019-01-10 16:00'
                            AND '2019-01-10 17:00'
    

两者都要求logintime仅存储格式正确的日期/时间表示形式才能正常工作。对于1。,unix_timestamp()可以识别某些格式。对于2.,它必须恰好是YYYY-MM-DD HH24:MI