Datenbanken und mehr

3. September 2007

Gregorianischer Kalender zum zweiten

Filed under: Katmai, T-SQL — Urs Gehrig @ 21:56

Bereits in einem früheren Blog habe ich über das Speichern eines Datums in der DB gesprochen. Mit dem Erscheinen der nächsten SQL Server Version (Codename Katmai) möchte ich dieses Thema nochmals aufnehmen, hat sich diesbezüglich doch einiges getan. Konkret, der SQL Server kennt neue Datentypen rund um Datum und Uhrzeit:

Data type

Format

Range

Accuracy

Storage size

(bytes)

User-defined fractional second precision

Time zone offset

time

hh:mm:ss[.nnnnnnn]

00:00:00.0000000 through 23:59:59.9999999

100 nanoseconds

3 to 5

yes

no

date

YYYY-MM-DD

00001-01-01 through 9999-12-31

1 day

3

no

no

smalldatetime

YYYY-MM-DD hh:mm:ss

1900-01-01 through 2079-06-06

1 minute

4

no

no

datetime

YYYY-MM-DD hh:mm:ss[.nnn]

1753-01-01 through 9999-12-31

0.333 second

8

no

no

datetime2

YYYY-MM-DD hh:mm:ss[.nnnnnnn]

0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999

100 nanoseconds

6 to 8

yes

no

datetimeoffset

YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm

00001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 (in UTC)

100 nanoseconds

8 to 10

yes

yes

Die Datentypen datetime und smalldatetime kennen wir bereits vom SQL Server 2005 her; hier hat sich nichts geändert. Diese Datentypen sind 100%-ig Kompatibel zur Implementation im SQL Server 2005. Die vier weiteren Datentypen time, date, datetime2 und datetimeoffset sind neu hinzugekommen. User-defined fractional second precision gibt an, ob du die Anzahl Nachkommastellen der Sekunde selber definieren kannst (im Bereich von 0 – 7). Time zone offset gibt an, ob in diesem Datentyp Information zur Zeitzone (inklusive Sommerzeit) abgelegt werden kann.

Wie bis anhin so folgen auch weiterhin alle Datumsangaben dem Gregorianischen Kalender. Eins irritiert mich aber schon: Der Gregorianische Kalender wurde erst im 16. Jahrhundert von Papst Gregor XIII eingeführt. Was passiert also mit den Daten vor dieser Zeit? Immerhin gehen die neuen Datentypen bis zum Jahr 1 zurück. Naja, sobald ich dahinter gekommen bin wie das funktioniert, schreibe ich einen kleinen Update zu diesem Blog J. Vielleicht hast du mir ein eine Erklärung oder auch nur einen kleinen Tipp? Merci!

Mein neuer Favorit ist ganz klar datetimeoffset. Damit kann ich praktisch alles machen: Zeitstempel für Logeinträge einer global verteilten Applikation verwalten (hierfür benötige ich die Zeitzonen), ein Geschichtsbuch ab Jesu Geburt schreiben (hierfür benötige ich Jahrzahlen ab 1) oder auch (vielleicht) die nächste Rangliste für den 100m Sprint an der Weltklasse Zürich (bis die auch die Tausendstelsekunde auswerten geht es bestimmt nicht mehr lange J und dann brauche ich die höhere Genauigkeit bei der Zeit). Soviel fürs erste. Viel Spass beim weiter entdecken der neuen Features von Katmai.

ACHTUNG: Alle hier gemachten Angaben basieren auf SQL Server 2008 CTP July und können bis zum Erscheinen der endgültigen Version noch ändern.

Advertisements

1 Kommentar »

  1. darf ich die erstausgabe des jesus buch haben? 😉
    endlich haben sie time und date aufgetrennt. freue mich schon.

    Kommentar von gesharptes — 4. September 2007 @ 07:59


RSS feed for comments on this post. TrackBack URI

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Erstelle eine kostenlose Website oder Blog – auf WordPress.com.

%d Bloggern gefällt das: