Werte im Zeitstempelfeld in Hexadezimalschreibweise (0x000000000000000866) Auf Microsoft SQL Server 2008

8

Ich habe eine Tabelle, in der ich gesendete E-Mails speichern kann. Ich entschied mich dann, ein TimeStamp-Feld zu dieser Tabelle hinzuzufügen, damit ich verfolgen kann, wenn die E-Mail gesendet wurde. Daten werden in die Tabelle ohne Probleme geschrieben, aber wenn ich den Tabelleninhalt mit Microsoft SQL Server 2008 Management Studio anzeigen lasse, werden die Daten im Timestamp-Feld wie folgt angezeigt: 0x000000000000000000845, auch in geschriebenen Datensätzen in die Datenbank seit der Zeitstempel Wert eingeführt wurde

Ich habe dann den Feldtyp in datetime geändert und dann ein Datum angezeigt. Aber es zeigt zum Beispiel das Datum 1900-01-01 00:00:23 an. Ich änderte es dann wieder in das Timestamp-Feld und es kehrte in sein aktuelles hexadezimales Format zurück.

Mache ich etwas falsch?

Prost

    
mickburkejnr 09.12.2010, 11:32
quelle

1 Antwort

14
  

Ich habe mich entschieden, einen TimeStamp hinzuzufügen   Feld zu diesem Tisch, damit ich verfolgen kann   wenn die E-Mail gesendet wurde

Ah ja. Das Lesen der Datenbank hätte gezeigt, dass das TMIestamp-Feld, das ein Vermächtnis des Sybase-Servers ist, keinen Zeitstempel speichert. Im Grunde ist es so etwas wie ein globaler Operationszähler. Es hat KEIN Verhältnis zur Zeit.

Wenn Sie einen echten Zeitstempel wünschen, fügen Sie einen DateTime-Typ der Spalte ein und stellen Sie die Systemzeit als Standard ein / durch atrigger usw. Zeitstempel ist dafür absolut nicht geeignet.

Nochmal keine MS-Sache - MS SQL Server wurde als Sybase SQL Server-Port für Windows gestartet, und der Timestampdata-Typ ist ein Sybase-Legacy.

    
TomTom 09.12.2010, 11:40
quelle

Tags und Links