正如标题所说,使用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
任何输入都将非常感激。感谢。
答案 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
作为奖励也正确处理闰秒:)