我将日期和时间保存在mysql数据库的unix时间戳中。我想在特定范围的DATE(示例1)或DATE AND TIME(示例2)中获取记录。
示例1: 从日期= 20/10/2010到= 22/10/2010
获取记录示例2: 从日期= 20/10/2010到= 22/10/2010,从时间= 13:20:00到= 01:10:00获取记录
对此有什么疑问?
非常感谢您的帮助
答案 0 :(得分:2)
使用FROM_UNIXTIME function将Unix时间戳转换为DATETIME数据类型:
WHERE FROM_UNIXTIME(your_column) BETWEEN '2010-10-20'
AND '2010-10-22'
BETWEEN运算符是包含的,您需要使用MySQL的标准日期格式(YYYY-MM-DD)将字符串隐式转换为DATETIME,否则您必须使用STR_TO_DATE将字符串转换为约会时间。如果时间部分未包含在字符串中,则默认为午夜。含义'2010-10-20'=='2010-10-20 00:00:00'。
您的第二个要求并不清楚何时适用。如果截止日期为13:20,最后为01:10 - 请使用:
WHERE FROM_UNIXTIME(your_column) BETWEEN '2010-10-20 13:20:00'
AND '2010-10-22 01:10:00'
最后,在列上使用FROM_UNIXTIME函数会使列上的索引无效。
答案 1 :(得分:0)
仅基于TIME获取记录:
WHERE TIME(FROM_UNIXTIME(your_column)) BETWEEN '01:15:00'
AND '01:15:59'
此致