2017-02-17 12 views

答えて

4

使用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 
); 
+0

良い答えエリオット。文字列を日付にキャストすることは可能ですか? 'CAST(s AS DATE)' –

0

、あなたが文字列を行うことができますDATE型にするのではなく、次の2つの可能性があります。

#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 
); 
関連する問題