Le type de données Date/heure étendue stocke les informations de date et d’heure et est semblable au type de données Date/heure, mais il fournit une plage de dates plus importante, une précision de fraction supérieure et une compatibilité avec le type de date datetime2 SQL Server. Lorsque vous importez ou liez des données Access vers SQL Server, vous pouvez mapper de façon cohérente un champ Date/heure étendue Access vers une colonne datetime2 SQL Server. Si vous souhaitez obtenir plus d'informations, voir datetime2 (Transact SQL).
Avertissement Lorsque vous créez des expressions et utilisez des fonctions date/heure basées sur le type de données Date/heure étendue dans Access, vous pouvez perdre en précision dans les calculs ou rencontrer d’autres problèmes avec les résultats. Nous sommes conscients de ce problème et nous prévoyons de mieux prendre en charge les expressions et fonctions dans une prochaine publication. Pour contourner ce problème, vous pouvez Créer un requête SQL directe pour utiliser l’expression SQL Server équivalente et les fonctions date/heure. Si vous souhaitez avoir plus d’informations à ce sujet, consultez Comparaison d’Access SQL avec SQL Server TSQL.
Contenu de cet article
Comparaison entre les types de données Date/heure étendue et date/heure |
Utilisation du type de données Date/heure étendue en tant que chaîne dans VBA |
Comparaison entre les types de données Date/heure étendue et date/heure
Les tableaux suivants récapitulent les différences importantes entre les deux types de données.
Attribut |
Date/Heure |
Date/heure étendue |
---|---|---|
Valeur minimale |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
Valeur maximale |
9999-12-31 23:59:59.999 |
9999-12-31 23:59:59.9999999 |
Précision |
0,001 secondes |
1 nanoseconde |
Taille |
Virgule flottante à double précision |
Chaîne codée de 42 octets |
Utilisation du type de données Date/heure étendue
Les informations suivantes décrivent d’importantes considérations relatives à l’utilisation.
Mode Création de table Pour tirer parti d’une plage de données plus grande et plus précise, vous pouvez ajouter un champ à une table Access. Vous pouvez également convertir une date/heure en type de donnéesDate/heure étendue en Mode Création de table. L’utilisation de ce type de données en tant que champ de clé primaire est également prise en charge. Si vous voulez obtenir plus d’informations, voir Créer une table et ajouter des champs.
Saisir la date et l’heure La saisie des valeurs date et heure est similaire au type de données date/heure, sauf que vous pouvez également entrer une nanoseconde fractionnaire. Par exemple :
-
Format d’entrée : jj/mm/aaaa hh : mm : SS. nnnnnnn
-
Exemple : 06/15/1215 09:25:3.234
S’il existe plus de 7 nanosecondes fractionnaires, celles-ci sont arrondies à 7 chiffres. Pour contrôler l’affichage des nanosecondes fractionnaires, ouvrez la table, dans le ruban, sélectionnez Champs, puis dans le groupe Mise en forme, sélectionnez Augmenter les décimales ou Réduire les décimales .
Mise en forme Les types de données date/heure et date/heure et Date/heure étendue utilisent des chaînes de mise en forme standard similaires pour Date générale, Date longue, Date médium, Date courte, Temps long, Temps médiumet Temps court qui prennent en charge la mise en forme personnalisée. Pour le type de données Date/heure étendue, les formats standard basés sur l’heure prennent également en charge une précision fractionnaire pour les nanosecondes. La mise en forme du type de données Date/heure étendue est par défaut au format Date générale et Temps long et suit les options spécifiées dans la Paramètres régionaux Windows. Vous pouvez également contrôler la mise en forme de la précision fractionnaire en utilisant la propriété Nombre de décimales pour spécifier le nombre de chiffres à droite de la décimale (1-7).
Liaison et importation Vous pouvez également créer un lien vers des bases de données ou effectuer une importation à partir de bases de données avec un type de données correspondant, tel que le type de données datetime2 SQL Server. Les bases de données SQL Server version 2014 ou ultérieures sont prises en charge. Le type de données Date/heure étendue nécessite l’utilisation du pilote Microsoft ODBC pour SQL Server 11 ou version ultérieure. Nous vous recommandons d’utiliser le pilote Microsoft ODBC 13.1 pour SQL Server. L’utilisation d’OLE DB est également prise en charge. Si vous souhaitez obtenir plus d’informations, voir Prise en charge du type de données pour les améliorations de date et d’heure ODBC et Utiliser les fonctionnalités améliorées de date et d’heure (OLE DB).
Formulaires et rapports Vous pouvez ajouter le type de données Date/heure étendue à un formulaire ou un rapport. Dans un formulaire, vous pouvez utiliser le sélecteur de dates et le masque de saisie pour entrer une date avec une plage plus importante, mais pas la précision fractionnaire pour les nanosecondes.
Prise en charge des expressions Le type de données Date/heure étendue prend en charge les Fonctions d’agrégation SQL et l’évaluation des expressions. Par exemple, l’utilisation de LoggedDateTime en tant que champ avec le type de données Date/heure étendue :
Tâche |
Exemple |
Résultat |
---|---|---|
Trouver la valeur minimale |
Min(LoggedDateTime) |
Date et heure la plus ancienne dans la plage |
Extraire le mois |
Month(LoggedDateTime) |
Nom du mois (par exemple, janvier) |
Ajouter un jour |
[LoggedDateTime]+1 |
Mardi devient mercredi |
Considérations relatives à la compatibilité descendante
Le type de données Date/heure étendue n’est pas compatible avec les versions précédentes de Microsoft Access. Si le type est utilisé dans une table Access locale, les versions d’Access qui n’incluent pas la fonctionnalité ne pourront pas ouvrir la base de données.
Vous pouvez activer ou désactiver le type de données Date/Heure Étendue pour lier et importer des opérations avec l’option Accès aux bases de données actuelPrendre en charge le type de données étendu Date/Heure pour les tables liées/lmportées. Pour plus d’informations, voir Définir les options utilisateur de la base de données active.
Utilisation du type de données Date/heure étendue en tant que chaîne dans VBA
Les exemples VBA suivants utilisent des méthodes DAO pour afficher, entrer et évaluer le type de données Date/heure étendue sur la base du tableau ci-dessous.
ID |
DTEData |
DTData |
1 |
01/01/2 1:01:03.1234567 AM |
01/01/2001 |
Nom de table : DTETable
Type de données ID : NuméroAuto Type de données DTEData : Date/heure étendue Type de données DTData : Date/HeureExemple : Saisir la date et l’heure
L’exemple suivant affiche la date et l’heure. Le format utilisé est jj/mm/aaaa hh:mm:ss.nnnnnnn dans une horloge de 24 heures. Le format n’est pas personnalisable.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
Debug.Print rs!DTETable
rs.MoveNext
Loop
Résultat Access affiche : 01/01/0002 01:01:03.1234567.
Exemple : Saisir la date et l’heure
L’exemple suivant entre la date et l’heure dans un format de chaîne. Tous les formats de date et d’heure standard sont pris en charge.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
.AddNew
![DTEData] = "1/1/9999 1:1:1.0123 AM"
![DTData] = #1/1/2001#
.Update
End With
Résultat Access ajoute une nouvelle ligne (ID = 2) :
ID |
DTEData |
DTData |
1 |
01/01/2 1:01:03.1234567 AM |
01/01/2001 |
2 |
01/01/9999 1:01:01.0123000 AM |
01/01/2001 |
Exemple : Évaluation d’une expression de requête
L’exemple suivant utilise la Fonction jour pour extraire le numéro du jour à partir des champs date et heure.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
Debug.Print "The day of the month is: "&rs!day
rs.MoveNext
Loop
Résultat Access affiche :
Le jour du mois est le suivant : 1
Le jour du mois est le suivant : 1Voir aussi
Présentation des types de données et des propriétés de champ