使用DATE和DATETIME时行数不同

时间:2012-01-23 16:49:33

标签: mysql datetime date

正如标题所说,使用DATE和DATETIME进行选择时行数不同。请指教。

我试图在2012年1月1日到5日之间选择行。日期列数据类型为bigint(UNIX时间戳)。

select * from table_name
where sample_timestamp between unix_timestamp('2012-01-01')*1000 and unix_timestamp('2012-01-05')*1000 

如果我在HH:MM:SS中包含时间,则返回的行是正确的,即

select * from table_name
where sample_timestamp between unix_timestamp('2012-01-01 00:00:00')*1000 and unix_timestamp('2012-01-05 23:59:59')*1000 

任何输入都将非常感激。感谢。

1 个答案:

答案 0 :(得分:1)

'2012-01-05'实际上是'2012-01-05 00:00:00',这不是您在第二个选择中所写的内容。

我怀疑你的意思是

select * from table_name 
where sample_timestamp >= unix_timestamp('2012-01-01')*1000 
and sample_timestamp < unix_timestamp('2012-01-06')*1000

作为奖励也正确处理闰秒:)