我想查询一个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')
但是查询不起作用。
答案 0 :(得分:1)
loginTime类型为varchar
这就是麻烦所在。您应该使用适当的日期/时间类型重新设计表格。
同时,您基本上有两个选择。
也将logintime
转换为Unix时间戳。
WHERE unix_timestamp(logintime) BETWEEN unix_timestamp('2019-01-10 16:00')
AND unix_timestamp('2019-01-10 17:00')
或比较字符串。
WHERE logintime BETWEEN '2019-01-10 16:00'
AND '2019-01-10 17:00'
两者都要求logintime
仅存储格式正确的日期/时间表示形式才能正常工作。对于1。,unix_timestamp()
可以识别某些格式。对于2.,它必须恰好是YYYY-MM-DD HH24:MI
。