2010-12-09 26 views
8

J'ai un tableau dans lequel je sauvegarde les e-mails qui ont été envoyés. J'ai alors décidé d'ajouter un champ TimeStamp à cette table afin que je puisse savoir quand l'e-mail a été envoyé. Les données sont écrites dans la table sans aucun problème, mais lorsque je consulte le contenu de la table à l'aide de Microsoft SQL Server 2008 Management Studio, les données contenues dans le champ Horodatage sont affichées comme suit: 0x0000000000000000845, même dans les enregistrements écrits à la base de données depuis que la valeur Timestamp a été introduiteValeurs dans le champ d'horodatage affiché en hexadécimal (0x000000000000000866) Sur Microsoft SQL Server 2008

J'ai ensuite changé le type de champ en datetime, et il affiche ensuite une date. Mais il affiche la date 1900-01-01 00:00:23 par exemple. Je l'ai ensuite redéfini sur le champ Horodatage et il est revenu dans son format hexadécimal actuel.

Est-ce que je fais quelque chose de mal?

Vive

Répondre

14

J'ai décidé d'ajouter un champ TimeStamp à cette table, je peux suivre lorsque l'e-mail a été envoyé

Ah oui. La lecture de la base de données vous aurait montré que le champ TMIestamp - qui est un héritage du serveur Sybase - ne mémorise PAS d'horodatage. Fondamentalement, c'est quelque chose comme un guichet d'opérations mondiales. Il n'a aucune relation avec le temps.

Si vous voulez un horodatage réel, mettez une colonne de type DateTime et réglez l'heure système par défaut/par atrigger, etc. L'horodatage est totalement inadapté pour cela.

Encore une fois, pas une chose MS - MS SQL Server a commencé en tant que port Sybase SQL Server pour Windows, et le type Timestampdata est un héritage Sybase.

+0

Hey merci pour cela. Fonctionne un régal! :) – mickburkejnr

+3

Et le type de données 'timestamp' a été déprécié en faveur de' rowversion' qui est en effet une bien meilleure description de ce qu'il est vraiment –

+0

Bon à savoir que tout a commencé avec sybase SQL Server. Naming est en fait l'une des choses les plus difficiles en informatique. C'est un très bon exemple où l'horodatage n'a rien à voir avec la date et l'heure :) – RBT