Antwort

0

Snowflake bietet DATE_TRUNC(WEEK, ..), die Sie den ersten Tag der ISO-Woche erhalten können. Wenn Sie dann 6 Tage hinzufügen, erhalten Sie den letzten Tag. Und es gibt auch DATE_EXTRACT(WEEK, ..) (oder einfach WEEK(..))

Zum Beispiel:

select extract(week, '2017-10-10'::date), date_trunc(week, '2017-10-10'::date), dateadd(day, 6, date_trunc(week, '2017-10-10'::date)); 
-----------------------------------+--------------------------------------+-------------------------------------------------------+ 
EXTRACT(WEEK, '2017-10-10'::DATE) | DATE_TRUNC(WEEK, '2017-10-10'::DATE) | DATEADD(DAY, 6, DATE_TRUNC(WEEK, '2017-10-10'::DATE)) | 
-----------------------------------+--------------------------------------+-------------------------------------------------------+ 
41        | 2017-10-09       | 2017-10-15           | 
-----------------------------------+--------------------------------------+-------------------------------------------------------+ 

Denken Sie daran, dass die ISO Wochen ein bisschen komisch Semantik haben, finden Sie in der Dokumentation für weitere Details.

+0

Danke Marcin. Das ist sehr hilfreich. Heißt das, dass Snowflake native Unterstützung von ISO-Daten hat? Wie kann ich dann eine normale Wochennummer (nicht ISO) von einem bestimmten Datum erhalten? Gibt es dafür eine andere Funktion? Es gibt eine Funktion, die ich in der SF-Dokumentation "dayofweek_iso" finden konnte. Sind Ihnen solche anderen Funktionen bekannt? Ich konnte so etwas in der Dokumentation nicht finden. – Mohit

+0

Heute bietet Snowflake meist ISO-basierte Wochenfunktionen: WEEK gibt ISO Woche zum Beispiel zurück. Außerdem wird Snowflake in Kürze zusätzliche Funktionen für die Woche bereitstellen. Hoffentlich in diesem Quartal. Dies sollte Ihren Anforderungen entsprechen. –

+0

Btw, wenn Sie die genaue Art der Funktionalität, die Sie sehen möchten, bieten können, fügen Sie bitte einen Kommentar damit, so detailliert wie möglich. Möchten Sie beispielsweise, dass der 31. Dezember immer zu der Woche seines Jahres gehört (z. B. 52 oder 53) oder zur Woche 1 des nächsten Jahres gehören kann? –

Verwandte Themen