it-swarm.com.de

Was genau bedeutet Trunk (Datum, 'IW')?

Für mein Projekt muss eine absolute numerische Entsprechung zwischen Wochentagen und 1 ... 7 Werten vorliegen.

Wie Sie wahrscheinlich wissen, kann die Zuordnung zwischen Tagen und Zahlen je nach Gebietsschema variieren, z. B. in Deutschland ist Montag 1 und Sonntag 7, während in den USA Montag 2 und Sonntag 1 ist.

Auf der Suche nach einer Lösung fand ich den folgenden Code, der unabhängig vom Gebietsschema zu funktionieren scheint und Montag = 1 ... Sonntag = 7 zuweist:

1 + TRUNC (date) - TRUNC (date, 'IW')

Kann mir jemand erklären wie das geht? Insbesondere kann ich diese Anweisung einfach nicht verstehen:

TRUNC (date, 'IW')

genau das tut.

6
Phate

Wie üblich wird dies in der Dokumentation beantwortet , insbesondere:

IW Gleicher Wochentag wie am ersten Tag der ISO-Woche (Montag)

6
Boneist

TRUNC(DATE,'IW') gibt den ersten Tag der Woche zurück. Für mich kehrt TRUNC(SYSDATE,'IW) Montag zurück. Heute ist Dienstag, der 21. Februar. Ziehen Sie von diesem TRUNC(SYSDATE,'IW'), dem Montag, dem 20., ab. Sie erhalten 1 (weil 21-20=1). Fügen Sie 1 wie zu Beginn Ihrer Gleichung hinzu und Sie erhalten 2, den wir mit Tuesday verbinden. 

5
John

Das Grundkonzept vonISOweek besteht darin, es NLS-Territorium unabhängig zu machen .

Aus Dokumentation ,

Woche des Jahres (1-52 oder 1-53) basierend auf dem ISO-Standard.

Eine Woche beginnt an einem Montag und endet an einem Sonntag .

2
Lalit Kumar B