Google bigquery Bigquery标准SQL日期到月的第一天

Google bigquery Bigquery标准SQL日期到月的第一天,google-bigquery,bigquery-standard-sql,Google Bigquery,Bigquery Standard Sql,在BigQuery标准SQL中,如何将YYYY-MM-DD格式的日期转换为每月的第一天?使用date\u TRUNC: #standardSQL SELECT DATE_TRUNC('2017-02-17', MONTH); 或者,对于一个更有趣的示例,其中输入是格式为YYYY-MM-DD的字符串: #standardSQL SELECT DATE_TRUNC(CAST(s AS DATE), MONTH) FROM ( SELECT '2017-02-17' AS s UNION ALL

在BigQuery标准SQL中,如何将YYYY-MM-DD格式的日期转换为每月的第一天?

使用
date\u TRUNC

#standardSQL
SELECT DATE_TRUNC('2017-02-17', MONTH);
或者,对于一个更有趣的示例,其中输入是格式为
YYYY-MM-DD
的字符串:

#standardSQL
SELECT DATE_TRUNC(CAST(s AS DATE), MONTH)
FROM (
  SELECT '2017-02-17' AS s UNION ALL
  SELECT '2017-02-14' AS s
);

使用
日期\u TRUNC

#standardSQL
SELECT DATE_TRUNC('2017-02-17', MONTH);
或者,对于一个更有趣的示例,其中输入是格式为
YYYY-MM-DD
的字符串:

#standardSQL
SELECT DATE_TRUNC(CAST(s AS DATE), MONTH)
FROM (
  SELECT '2017-02-17' AS s UNION ALL
  SELECT '2017-02-14' AS s
);

如果输入为字符串,则可以执行字符串操作,而不是使用日期类型,以下是几种可能性:

#standardSQL
SELECT 
  REGEXP_REPLACE(s, r'({\d}4-{\d}2)-{\d}2', '\\1-01'),
  CONCAT(SUBSTR(s, 0, 7), '-01')
FROM (
  SELECT '2017-02-17' AS s UNION ALL
  SELECT '2017-02-14' AS s UNION ALL
  SELECT '1985-08-31' AS s
);

如果输入为字符串,则可以执行字符串操作,而不是使用日期类型,以下是几种可能性:

#standardSQL
SELECT 
  REGEXP_REPLACE(s, r'({\d}4-{\d}2)-{\d}2', '\\1-01'),
  CONCAT(SUBSTR(s, 0, 7), '-01')
FROM (
  SELECT '2017-02-17' AS s UNION ALL
  SELECT '2017-02-14' AS s UNION ALL
  SELECT '1985-08-31' AS s
);

回答得好,艾略特。直到可以将字符串转换为日期<代码>演员阵容(以日期为准)Elliott回答得很好。直到可以将字符串转换为日期<代码>演员阵容(截止日期)