Was genau macht trunc(date, 'IW')?
Für mein Projekt benötige ich eine absolute numerische Korrespondenz zwischen den Tagen der Woche und 1...7 Werte.
Wie Sie wahrscheinlich wissen, die Verbindung zwischen Tagen und zahlen variieren je nach Gebietsschema, zum Beispiel in Deutschland, Montag ist 1, Sonntag ist 7, während in UNS der Montag ist 2, während am Sonntag ist 1.
So, die Suche nach einer Lösung fand ich folgenden code, der scheint, zu arbeiten, unabhängig von der Ländereinstellung, die Zuordnung von Montag=1...Sonntag=7:
1 + TRUNC (date) - TRUNC (date, 'IW')
Kann jemand mir erklären wie es funktioniert? Insbesondere kann ich einfach nicht verstehen, was diese Anweisung:
TRUNC (date, 'IW')
genau macht.
trunc(date,'IW') gibt den ersten Tag der Woche und ist nicht betroffen von der nls_territory Einstellungen finden Sie unter docs.oracle.com/cd/B19306_01/server.102/b14200/.... Nur der format-string TAG, DY und D betroffen sind.
äh, Nein. IW gibt den ersten Tag der ISO-Woche (Montag) und ist daher völlig unberührt von der nls_territory_settings.
Du hast Recht, meine erste Antwort war zu schnell 😀
äh, Nein. IW gibt den ersten Tag der ISO-Woche (Montag) und ist daher völlig unberührt von der nls_territory_settings.
Du hast Recht, meine erste Antwort war zu schnell 😀
InformationsquelleAutor Phate | 2015-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als üblich, das ist beantwortet in der Dokumentation, insbesondere:
InformationsquelleAutor Boneist
TRUNC(DATE,'IW')
gibt den ersten Tag der Woche. Für michTRUNC(SYSDATE,'IW)
gibt Montag. Heute ist Dienstag Feb 21. Subtrahieren von, dassTRUNC(SYSDATE,'IW')
wäre Montag, dem 20., und Sie erhalten1
(weil21-20=1
). Hinzufügen1
auf, als Sie am Anfang Ihrer Gleichung und erhalten Sie2
, was assoziieren wir mit Dienstag.InformationsquelleAutor John
Den sehr grundlegenden Konzept der ISO Woche ist es NLS Gebiet Unabhängiger.
Vom Dokumentation,
Einer Woche beginnt auf einem Montag und endet auf einem Sonntag.
InformationsquelleAutor Lalit Kumar B