Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique décrit la prise en charge de SQL Server Native Client pour les types de données de date et d’heure ajoutés dans SQL Server 2008.
Pour plus d’informations sur les améliorations de date/heure, consultez Améliorations de date et d’heure (OLE DB) et Améliorations de date et d’heure (ODBC).
Pour plus d’informations sur les exemples d’applications qui illustrent cette fonctionnalité, consultez les exemples de programmation de données SQL Server.
Utilisation
Les sections suivantes décrivent différentes façons d’utiliser les nouveaux types de date et d’heure.
Utiliser la date comme type de données distinct
À compter de SQL Server 2008, la prise en charge améliorée des types date/heure rend plus efficace l’utilisation du type ODBC SQL_TYPE_DATE (SQL_DATE pour les applications ODBC 2.0) et du type OLE DB DBTYPE_DBDATE.
Utiliser l’heure comme type de données distinct
OLE DB a déjà un type de données qui contient simplement le temps, DBTYPE_DBTIME, qui a une précision de 1 seconde. Dans ODBC, le type équivalent est SQL_TYPE_TIME (SQL_TIME pour les applications ODBC 2.0).
Le nouveau type de données de temps SQL Server a des fractions de secondes exactes à 100 nanosecondes. Cela nécessite de nouveaux types dans SQL Server Native Client : DBTYPE_DBTIME2 (OLE DB) et SQL_SS_TIME2 (ODBC). Les applications existantes écrites pour utiliser des heures sans secondes fractionnaires peuvent utiliser des colonnes time(0). Les types DBTYPE_TIME OLE DB et ODBC SQL_TYPE_TIME existants et leurs structs correspondants doivent fonctionner correctement, sauf si les applications s’appuient sur le type retourné dans les métadonnées.
Utiliser le temps comme type de données distinct avec une précision fractionnaire prolongée en secondes
Certaines applications, telles que le contrôle de processus et les applications de fabrication, nécessitent la possibilité de gérer les données de temps avec une précision allant jusqu’à 100 nanosecondes. Les nouveaux types à cet effet sont DBTYPE_DBTIME2 (OLE DB) et SQL_SS_TIME2 (ODBC).
Utiliser Datetime avec précision fractionnaires étendues
OLE DB définit déjà un type avec une précision allant jusqu’à 1 nanoseconde. Toutefois, ce type est déjà utilisé par les applications SQL Server existantes et ces applications ont une attente de seulement 1/300 d’une seconde précision. Le nouveau datetime2(3) type n’est pas directement compatible avec le type datetime existant. S’il existe un risque que cela affecte le comportement de l’application, les applications doivent utiliser un nouvel indicateur DBCOLUMN pour déterminer le type de serveur réel.
ODBC définit également un type avec une précision allant jusqu’à 1 nanoseconde. Toutefois, ce type est déjà utilisé par les applications SQL Server existantes et ces applications s’attendent à une précision de 3 millisecondes. Le nouveau datetime2(3) type n’est pas directement compatible avec le type existant datetime .
datetime2(3) a une précision d’une milliseconde et datetime a une précision de 1/300 d’une seconde. Dans ODBC, les applications peuvent déterminer le type de serveur utilisé avec le champ descripteur SQL_DESC_TYPE_NAME. Par conséquent, le type existant SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP pour les applications ODBC 2.0) peut être utilisé pour les deux types.
Utiliser Datetime avec une précision fractionnaire étendue et un fuseau horaire
Certaines applications nécessitent des valeurs datetime avec des informations de fuseau horaire. Cela est pris en charge par les nouveaux types DBTYPE_DBTIMESTAMPOFFSET (OLE DB) et SQL_SS_TIMESTAMPOFFSET (ODBC).
Utiliser les données Date/Heure/Datetime/Datetimeoffset avec des conversions Client-Side cohérentes avec les conversions existantes
La norme ODBC décrit comment les conversions entre les types de date, d’heure et d’horodatage existants fonctionnent. Elles sont étendues de manière cohérente pour inclure les conversions entre tous les types de date et d’heure introduits dans SQL Server 2008.