问题描述
BigQuery是否与DATEFROMPARTS
等效?我只想更改时间戳中的月份和日期,而不更改年份。
这是我在DATETIME的桌子:
BirthYear
2014-12-12T00:00:00
2015-01-07T00:00:00
我只想更改月份和日期,但保留年份。例如,将底行更改为:2015-04-01T00:00:00
以下查询在MS sql中有效,我正尝试在BigQuery中重写它:
UPDATE `table` SET BirthYear = DATEFROMPARTS(BirthYear,04,01) WHERE BirthYear IS NULL
解决方法
对于以下SQL Server表达式:
datetime_trunc()
在BigQuery中,您可以使用datetime_add()
和datetime_add(datetime_trunc(birthdate,year),interval 4 month)
来做到这一点:
datetime
这将为您提供date_trunc()
值。如果要处理date_add()
,则可以使用date
和{{1}}。
相当于date(extract(year from BirthYear),4,1)
的BigQuery是
datetime(date(extract(year from BirthYear),1))
此外,如果您需要它“转换”回日期时间,则可能要按以下方式使用
A = replace(X,"," ");