-
colonne de type time
salut,
je suis un nouveau utilisateur de sql server 2005 et je souhaiterais créer une colonne dans une table de type time (seulement heure, minute et seconde) j'ai essayé mais j'ai pas pû.
Pouvez vous m'expliquer la différence entre datetime et timestamp
Merci
-
Dans SQL SERVER 2000, tu n'as pas de type pour n'avoir qu'une heure ou alors il faut le mettre en char(8) pour avoir une chaine du style "14:53:14"
Je pense que c'est toujours le cas dans 2005.
Le type de données SQL Server timestamp n'a aucun lien avec les dates et les heures. Les timestamps SQL Server sont des nombres binaires qui indiquent l'ordre relatif dans lequel ont lieu les modifications dans une base de données. Le type de données timestamp visait initialement à prendre en charge les algorithmes de récupération SQL Server. Chaque fois qu'une page était modifiée, elle était marquée avec la valeur @@DBTS actuelle et @@DBTS était incrémenté. Cela suffisait pour que la récupération détermine l'ordre relatif dans lequel les pages étaient modifiées, mais les valeurs timestamp n'avaient alors pas de liens entre elles.
Dans SQL Server 7.0 et SQL Server 2000, @@DBTS est incrémenté uniquement pour une utilisation dans les colonnes timestamp. Si une table contient une colonne timestamp, chaque fois qu'une ligne est modifiée par une instruction INSERT, UPDATE ou DELETE, la valeur timestamp dans la ligne est fixée à la valeur actuelle @@DBTS, puis @@DBTS est incrémenté.
N'utilisez jamais de colonnes timestamp dans les clés, surtout les clés primaires, car la valeur timestamp change à chaque fois que la ligne est modifiée.
Pour enregistrer les dates et heures des modifications de données effectuées dans une table, utilisez soit le type de données datetime, soit smalldatetime afin d'enregistrer les événements et déclencheurs destinés à mettre à jour automatiquement les valeurs en cas de modification.
-
Salut Hulk,
Oui, c'est toujours le cas dans 2005. Les premières versions avaient deux types séparés, mais cela a été abandonné en cours de route, je ne sais pas trop pourquoi.