仅在BigQuery中更改月份和日期



BigQuery中是否存在DATEFROMPARTS的等价项?我试图只更改时间戳中的月份和日期,而不是年份。

这是我在DATETIME:中的表格

BirthYear 
2014-12-12T00:00:00
2015-01-07T00:00:00

我只想更改月份和日期,但保留年份。例如,将底部一行更改为:2015-04-01T00:00:00

以下查询在MSSQL中有效,我正试图在BigQuery中重写它:

UPDATE `table` SET BirthYear = DATEFROMPARTS(BirthYear, 04, 01) WHERE BirthYear IS NULL

datefromparts(year(birthdate), 4, 1)的BigQuery等价物是

date(extract(year from BirthYear), 4, 1)    

此外,如果您需要";转换";您可能希望使用的最新时间如下

datetime(date(extract(year from BirthYear), 4, 1))   

对于以下SQL Server表达式:

datefromparts(year(birthdate), 4, 1)

在BigQuery中,可以使用datetime_trunc()datetime_add():

datetime_add(datetime_trunc(birthdate, year), interval 4 month)

这将为您提供一个datetime值。如果要处理date,则可以使用date_trunc()date_add()

最新更新