Das ist immer so eine sache mit dem Datum
Ich habs mittlerweile aufgegeben Datumsfelder in die Datenbank zu speichern.
a.) Speichere das Datum als gleitkommazahl in die Datenbank.
Dann kannst Du mit CDate(my_gleitkommazahl) das Datum anzeigen und mit CDbl(my_date) das Datum als gleitkommazahl abspeichern.
Und was das schönste ist: es läuft einfach immer.
Nachteil: In der Datenbank steht dann nur eine Zahl die nichts aussagt.
b.) Speichere das Datum als String im Format JJJJMMTT. Vorteil: Wert ist in der Datenbank sichtabar. Jedoch musst Du das Datum mit Stringfunktionen manipulieren.
Ich würde a.) nehmen
Gruss,
Giuseppe
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Da ich jedoch nicht mit Access arbeite, sondern mit MS-SQL 7.0 gestaltet sich das etwas schwieriger. Ich benutze zwar CONVERT auf dem Server aber das funktioniert leider nicht …
Gruss
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Aufgrund deiner Frage „Warum nimmst du nicht eine Integer-Zahl“ vermute ich, daß du Programmieranfänger bist (richtig?).
Eine Integerzahl wird intern als 2-Byte-Zahl abgelegt, also zwei mal 8 Bits, wovon das höchstwertige Bit für das Vorkomma zuständig ist. Mit einem Integer kann ich somit die Zahlen von -32768 bis +32767 abbilden. Eine Zahle +32768 führt zu einem Variablen-Überlauf (Datentyp ist zu klein, Variable „platzt“).
Das heutige Datum - 20.07.2001 - ist in VB der Jahrhunderttag 37092 - diesen Wert bekommst du schon nicht mehr in eine Integer-Variable unter (ein Long mit 4 Bytes ist erforderlich).
Fließkommazahlen haben hingegen den Vorteil, daß man neben dem Datum auch die Uhrzeit unterbringen kann:
37092,25 wäre z.B. der 20.Juli 2001, 06:00 Uhr morgens
37092,50 der 20.Juli 2001, 12:00 Uhr mittags
37092,5130324074 wäre der 20.Juli 2001, 12:18:47 (plus nicht dargestellte Millisekunden)
usw.
Dies nur zu den DV-Basics, die offenbar immer mehr in Vergessenheit geraten (wer befaßt sich heute im Zeitalter interaktiver Programmierung noch mit Bitmuster, Registerinformationen oder Datentypen?) ))
Grüße
Siegfried
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Nein, als Anfänger würde ich mich nicht bezeichnen … habe mich wohl nur ungenau ausgedrückt. Im MS-SQL-Server ist ein Integer-Wert das selbe wie ein Long-Wert in VB.
Also ich meinte eigentlich ein Long-Wert und ich denke, da kann ich dann ohne Probleme ein heutiges Datum inkl. Uhrzeit und allem drum und dran speichern.
Meines Wissens (bin aber an dieser Stelle unsicher) werden Integer-(Long)-Werte intern schneller als Reals verarbeitet. Richtig?
Meines Wissens (bin aber an dieser Stelle unsicher) werden
Integer-(Long)-Werte intern schneller als Reals verarbeitet.
Richtig?
Gruss
Martin
Mag sein - aber das ist kaum meßbar, oder wenn, dann nur in Hochleistungsmaschinen (z.B. Cray) oder bei Rechenoperationen in gigantischen Schleifen. Vermutlich hängt es damit zusammen, daß Ganzzahlwerte direkt aus dem Bitmuster hergeleitet werden können, bei Fließkommazahlen muß das Bitmuster in Mantisse und Exponent umgewandelt und das wieder in eine reale Zahl umgerechnet werden.