SqlHints.com

DateTime2 est le nouveau type de données introduit dans Sql Server 2008 pour stocker la valeur de date et d’heure. Selon MSDN, Microsoft suggère d’utiliser ce nouveau type de données pour un nouveau travail au lieu de DateTime.

Le tableau suivant résume une partie de la différence majeure entre ce nouveau type de données DateTime2 et l’ancien type de données DateTime.

DateTime DateTime2
Min Value 1753-01-01 00:00:00 0001-01-01 00:00:00
Max Value 9999-12-31 23:59:59.997 9999-12-31 23:59:59.9999999
Taille de stockage 8 octets 6 à 8 octets
Remarque: Le paramètre n est facultatif et s’il n’est pas spécifié, la précision en
secondes fractionnaire est à 7 chiffres et il peut être de 0 à 7 chiffres. For fractional seconds
precision <3, takes 6 bytes For fractional seconds precision 3 or 4 it will take
7 bytes For fractional seconds precision >4 it will take 8 bytes
Usage Declare @now datetime Declare @now datetime2(7)
Compliance Is not an ANSI/ISO compliant Is an ANSI/ISO compliant
Fonction de Date et d’heure actuelle GetDate() – Elle renvoie la Date et l’Heure Actuelles de la Base de Données du Type de données DateTime

Exemple: SÉLECTIONNEZ GETDATE()
Résultat: 2011-09-16 13:23:18.767

SYSDATETIME() – Il renvoie la Date et l’heure actuelles de la base de données DateTime2 Type de données

Exemple: SÉLECTIONNEZ SYSDATETIME()
Résultat: 2011-09-16 13:23:18.7676720

+/- jours FONCTIONNE

Exemple:
DÉCLAREZ @nowDateTime DATETIME= GETDATE() SÉLECTIONNEZ @nowDateTime +1
Résultat: 2011-09-17 13:44:31.247

ÉCHOUE – Besoin d’utiliser uniquement la fonction DateAdd

Exemple:
DECLARE @nowDateTime2 DATETIME2=
SYSDATETIME()
SELECT @nowDateTime2+1
Result: Msg 206, Niveau 16, État 2, Ligne 2
Conflit de type d’opérande: datetime2 est incompatible avec int

DateTime2 avec une précision de 3 secondes fractionnaires est identique au type de données DateTime. Et DateTime2(3) utilise 7 octets de stockage au lieu de 8 octets que l’ancien type de données DateTime utilise et il fournit également une plage de dates plus élevée (c’est-à-dire 0001-01-01 à 9999-12-31) par rapport au type de données DateTime. Voyons maintenant cela avec un exemple:

DECLARE @nowDateTime DATETIME = GETDATE(), @nowDateTime2 DATETIME2(3)= SYSDATETIME()SELECT DATALENGTH(@nowDateTime) 'DateTime Storage Size', DATALENGTH(@nowDateTime2) 'DateTime2(3) Storage Size'
Result:DateTime Storage Size DateTime2 Storage Size --------------------- ---------------------- 8 7

LIRE AUSSI

  • Varchar vs NVarchar
  • Varchar vs Varchar(MAX)
  • Char vs Varchar
  • Texte vs Varchar (Max)
  • Union
  • DateTime vs DateTime2
  • SET QUOTED_IDENTIFIER ON vs SET QUOTED_IDENTIFIER OFF
  • Procédure stockée vs Fonction Définie par l’Utilisateur
  • Clé Primaire vs Clé Unique
  • RAISERROR vs THROW
  • Table temporaire vs Variable de Table
  • Len() vs Datalength()
  • Séquence vs Identité
  • DATEDIFF vs DATEDIFF_BIG
  • JOINTURE GAUCHE vs GAUCHE JOINTURE EXTERNE
  • JOINTURE DROITE vs JOINTURE EXTERNE DROITE
  • JOINTURE vs JOINTURE INTERNE
  • JOINTURE EXTERNE GAUCHE vs JOINTURE EXTERNE DROITE
  • SMALLDATETIME vs DATETIME



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.