如何使用标准SQL在Google Bigquery中将日期时间转换为日期,或者如何从日期时间的where语句中提取年份?

问题描述 投票:0回答:1

[当前,我有一个datetime字段,我需要用它过滤WHERE语句,特别是对于2019年和2020年。如果我只有一个没有时间的date字段,我知道我可以使用:WHERE extract(year from cast([field名称]作为日期))> 2018以提取年份为例。

因此,我需要以下两点之一:1)我需要将datetime字段转换为日期,以便可以使用上面的提取sql,或者2)我需要一个包含datetime字段的WHERE语句,该语句只允许我查看> 2018年的数据。

为了将日期时间转换为日期,除了大多数在线的bigquery指南解决方案之外,我还尝试了convert和left函数,不幸的是,这些解决方案不适用于我。

以下是当前日期时间格式的示例:“ 2018-08-22 02:48:56”

提前感谢您的帮助!

Here's an image of the error I get when extracting

sql datetime google-bigquery datetime-format
1个回答
0
投票
我建议不要在要过滤的列上应用日期函数,因为这会给数据库带来更多的工作(在比较之前,必须转换列中的每个值),并阻止数据库利用现有索引。] >

相反,您可以将datetime列与乱码进行比较,如下所示:

where mydatetime >= datetime(2019, 1, 1, 0, 0, 0)

© www.soinside.com 2019 - 2024. All rights reserved.