在BigQuery表中我使用DateTime类型列存储的日期值为“2016-01-20T00:00:00”。 我想运行查询,例如显示包含在某个范围内的行(从2016-01-01到2016-02-28)。
问题是,当我把
...Where data < TIMESTAMP('2017-01-30 00:00:00')...//less then
它告诉我什么,但是当我将它改为相反的值时,如
...Where data > TIMESTAMP('2017-01-30 00:00:00')...//greater then
它甚至会返回那些逻辑上应该被排除的值(如2017-01-20)
我已经测试了TIMESTAMP('2017-01-20 00:00:00')返回'2017-01-26 00:00:00 UTC'。
那么我应该使用bigQuery DateTime中的哪个方法来比较我的日期?可能我需要将它们转换成某种“毫秒以来的值”?
由于
答案 0 :(得分:2)
谢谢大家的帮助。您的回答和链接使我得到了解决方案。
where data<cast('2017-01-23 00:00:00' as datetime)
cast('2017-01-23 00:00:00' as datetime)
提供'2017-01-23T00:00:00'
值,bigQuery对此感到满意并给我想要的结果。
答案 1 :(得分:0)
如果您的列是datetime int:
Where data < 20170130
和
Where data > 20170130
如果您的列是datetime数据类型,请删除TIMESTAMP:
Where data < '2017-01-30 00:00:00'
和
Where data > '2017-01-30 00:00:00'