我有一个变量,其中的条目是日期(时间戳)。确切的格式如下:2009-03-01 00:00:00 UTC
。
我要过滤年份为2009(时间戳的前4位)的所有行。我正在使用Google BigQuery标准SQL。我尝试了以下方法:
WHERE LEFT(CAST(incurred_month_timestamp as STING), '4') LIKE 2013
如果任何人都可以共享查询,这将有所帮助。
谢谢。
答案 0 :(得分:0)
不要在日期上使用字符串函数! BigQuery具有许多有用的日期/时间/时间戳记功能。
您想要的是extract()
:
where extract(year from incurred_month_timestamp) = 2013
或使用范围:
where incurred_month_timestamp >= timestamp('2013-01-01') and
incurred_month_timestamp < timestamp('2014-01-01')
答案 1 :(得分:0)
一种更简单的方法是在BigQuery Legacy SQL中使用内置的year
函数,该函数从时间戳中提取年份。
这是您的代码示例。
where year(incurred_month_timestamp) == 2009