PDA

View Full Version : Datumprüfung(wieder einmal)



Seiten : [1] 2

tarkusch
19-07-14, 06:25
Hallo liebe Kollegen,

ich habe ein Dec 6, 0 Feld.
In den ersten 4 Stellen steht das Jahr und in den letzten beiden steht die Kalenderwoche.

Wie kann ich hier eine Prüfung auf Gültigkeit einbauen?

Mein Lösungsansatz wäre:
Ich hätte erst die max. Kalenderwoche, über eine Datei, ermittelt und anschließend die KW geprüft.

Ist das umständlich oder geht das "sauberer"?

Dank im Voraus

Tarki

B.Hauser
19-07-14, 10:12
Was willst Du prüfen, ob die Eingabe JJJJ/KW korrekt ist?
Oder willst Du das Ganze in ein Datum umrechnen?

Ein Jahr kann 52 oder 53 Kalenderwochen haben. Also alle Eingaben zwischen 0 und 52 sind gültig.
Muss also nur KW 53 geprüft werden.
Kalenderwoche nach ISO-Richtlinien ist so definiert, dass die Woche immer mit dem Montag beginnt und die Mehrheit der Tage des neuen Jahres in KW 1 sind. Daraus folgt, dass der 04.Januar ist immer in KW1 ist.
Du ziehst einfach vom 04.01. des Folge-Jahres 1 Woche (= 7 Tage) ab. Wenn Du die Kalenderwoche dieses Datums ermittelst kennst Du die letzte KW des Jahres.
Die Kalenderwoche nach ISO-Richtlinien kannst Du über die SQL-Funktion WEEK_ISO ermitteln.

Wenn Du allerdings eine Kalender-Datei hast, in der die KW "richtig" hinterlegt ist, kannst Du natürlich auch diese verwenden.

Birgitta

Fuerchau
21-07-14, 08:30
Wie so häufig bzgl. Datumsroutinen, es wird immer wieder neu gerechnet.
Die Beste Lösung ist hier immer noch die Kalenderdatei, die alle gewünschten Informationen und Formate sowie die dazugehörenden Indizes enthält, wenn etwas fehlt lässt es sich leicht ergänzen.
Zusätzlich kann diese Datei/Tabelle auch in Joins für sinnvolle Abfragen/Eingrenzungen verwendet werden.
Gültigkeitsprüfungen und Umrechnungen sind dann mittels simplen Chain/Select zu erledigen.

BenderD
21-07-14, 09:22
- maximale Kalenderwioche des Jahres ist immer die KW vom 31.12.!!!
- sinnhaftig ist weder dieses Datenbankfeld, noch jedwede nachgelagerte Prüfung!!! Auch wenn da 42 drin steht kann das ein Vertipper sein.

D*B

DKSPROFI
21-07-14, 09:30
Moin Dieter,

stimmt nicht, es ist der 28.12. eines Jahres (31.12.2014 ist KW01/2015!)

mfg


DKSPROFI

BenderD
21-07-14, 10:07
... ich weiß schon, dass es irgendwelche Bürokraten gibt, die da eigene Regeln aufstellen, der Verband der Geflügelzüchter sieht das wieder anders - auch Eierwoche genannt...
D*B

DKSPROFI
21-07-14, 10:20
... wie gut dass ich kein Geflügelzüchter bin.............:)


mfg


DKSPROFI

Fuerchau
21-07-14, 10:36
Rein kalendarisch ist das schon korrekt:
Die 1. gültige KW ist immer der 1.1., die letzte halt vom 31.12.
Natürlich ist es korrekt, dass die Jahreszahl der KW vom 1.1 das Vorjahr sein kann sowie die des 31.12. halt die des Folgejahres.
Dies löst eine Kalenderdatei eben auf.
Wenn man sich schon mal mit den amerikanischen 5-4-4 oder 4-5-4 o.ä. "Fiscal"-Kalendern beschäftigen musste, kommt um eine Kalenderdatei einfach nicht herum.

B.Hauser
21-07-14, 10:58
Dieter,

Nimm mal einfach einen ganz gewöhnlichen Kalender, den Du in jedem Schreibwaren oder sonstigen Kaufhaus bekommst oder der Dir als Werbegeschenk am Jahresende nachgeschmissen wird und in dem die KW angegeben ist, und dann sieh Dir die KW an, in der der 31.12.2014 steht.

Die Regel, nach der die KW nach ISO-Richtlinien ermittelt wird, lautet:
1. Die KW beginnt immer mit Montag
2. In KW 1 muss die Mehrheit der Tage aus dem neuen Jahr sein.

Ich kann mir nicht vorstellen, dass im kaufmännischen Bereich die KW anders als nach ISO-Richtlinien verwendet wird.

Außerdem solltest Du vorsichtig sein und den "Verband der Geflügelzüchter" nicht unterschätzen ...

Birgitta

camouflage
21-07-14, 11:11
Kalender, den Du in jedem Schreibwaren oder sonstigen Kaufhaus bekommst oder der Dir als Werbegeschenk am Jahresende nachgeschmissen wird

Birgitta,
es geht noch viel einfacher, Outlook zeigt die KW auch bombensicher an, sofern man die Funktion aktiviert hat.

Nachtrag @Baldur

5-4-4 oder 4-5-4 o.ä.

sieht fast nach einer taktischen Aufstellung der Fussball-Weltmeister aus :D