2017-02-17 9 views

Antwort

4

Verwendung DATE_TRUNC:

#standardSQL 
SELECT DATE_TRUNC('2017-02-17', MONTH); 

Oder für ein interessanteres Beispiel, bei dem die Eingabezeichenfolgen im Format YYYY-MM-DD ist:

#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

Schöne Antwort Elliott. TIL, dass es möglich ist, eine Zeichenfolge zu einem Datum zu übertragen! 'CAST (s wie Datum)' –

0

Wenn die Eingabe in Strings, können Sie String tun Manipulationen statt in den DATE-Typ zu fallen, hier sind ein paar Möglichkeiten:

#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 
); 
Verwandte Themen