BigQuery比较日期

max*_*986 2 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中的哪种方法来比较我拥有的日期?可能我需要将它们都转换为某种“毫秒后”值吗?

谢谢

max*_*986 6

谢谢大家的帮助。您的答案和链接使我找到了解决方案。

where data<cast('2017-01-23 00:00:00' as datetime)
Run Code Online (Sandbox Code Playgroud)

cast('2017-01-23 00:00:00' as datetime)提供'2017-01-23T00:00:00'价值,bigQuery对此很满意,并给了我想要的结果。