AspGerman Wiki

Bearbeiten

Serielle Zahl

Hinter der Bühne wird bei Zeit und Datum eine serielle Zahl zur Speicherung verwendet. Das ist bei Access und VBScript zunächst gleich, bei SQL Server sehr ähnlich. Seriell bedeutet es wird die Anzahl der Tage seit einem festgelegtem Datum "gezählt". Wie macht man das sichtbar? Folgende Abfrage könnte man z.B. direkt in das SQL Fenster von Access eingeben

SELECT Int(Now()) AS datum FROM leereTabelle;

Wäre das aktuelle Datum der 1. Januar 2001, dann würde als Ergebnis 36892 erhalten. Dies stellt die Anzahl der Tage seit dem 1.1.1900 dar (nicht 100% akkurat, aber das ist eine andere Geschichte). Das gleiche Spiel in einer ASP Seite mit VBScript lässt sich

Response.write CDbl(date())
darstellen.

Der Vorteil der seriellen Zahl liegt auf der Hand: ich kann wunderbar damit rechnen:

  1. .Eine Rechnung ist in 14 Tagen von heute fällig. Also das heutige Datum und 14 Tage draufaddieren. Die darunter liegende Software errechnet eine neue serielle Zahl die eingebauten Formatierungsfunktionen zeigen mir das Ergebnis in menschenlesbarer Form mit Tag, Monat und Jahr an. Ich brauche mich nicht mit Monatsgrenzen, Jahresgrenzen oder gar Schaltjahren zu plagen.
  2. .Wie viel Tage sind es noch bis zum nächsten Hochzeitstag? Auch hier ist die Rechnung einfach: Endedatum, also der Hochzeitstag minus aktuellem Datum gibt mir die Anzahl der Tage und wenn sie unter 2 rutscht wird es höchste Zeit dass der Computer Alarm schlägt.

Die serielle Zahl hat auch einen Nachkommateil: er dient dazu die Zeit als Bruchteil des Tages darzustellen. So wäre also 0,5 exakt die Mittagszeit, 0,25 dann 6:00 Uhr in der Früh oder 0,75 eben 18:00 abends. Auch dies kann man sich in Access anzeigen lassen. Die folgende Query würde etwa die aktuelle Tageszeit als Fließkommazahl anzeigen:

SELECT Sum(Now() - Int(Now())) AS zeit FROM leereTabelle;

In diesem Beispiel dient die Sum() Funktion nur dazu die Ausgabe in numerischer Form zu erzwingen. Lässt man die Summe weg, greift bereits die Automagic von Access wieder und zeigt nicht die zugrunde liegende Zahl sondern schön formatiert die Uhrzeit an.

Daraus folgt
  1. Zeit und Datum lassen sich wunderbar kombinieren. Streng genommen sind sie eh immer kombiniert, auch wenn sie vielleicht nur als ausschließliche Zeit- oder Datumsfelder (oder Variablen in Scriptsprachen) verwendet werden.
  2. Die Einheit der seriellen Zahl ist der Tag. So simpel dieser Satz klingen mag, so wichtig wird er in der Anwendung!

ScrewTurn Wiki version 2.0.33. Some of the icons created by FamFamFam.