3

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

4

2 回答 2

12

使用DATE_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
);
于 2017-02-17T22:47:13.497 回答
0

如果输入是字符串,您可以进行字符串操作而不是放入 DATE 类型,这里有几种可能性:

#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
);
于 2017-02-19T02:11:54.630 回答