BigQuery比较日期

时间:2017-07-03 12:08:22

标签: sql datetime google-bigquery

在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中的哪个方法来比较我的日期?可能我需要将它们转换成某种“毫秒以来的值”?

由于

2 个答案:

答案 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'