-
Le type
Datedevrait suffire dans la plupart des cas. Ce type nécessite 2 octets pour stocker une date et limite la plage à[1970-01-01, 2149-06-06]. -
Date32couvre une plage de dates plus large. Il nécessite 4 octets pour stocker une date et limite la plage à[1900-01-01, 2299-12-31] -
DateTimestocke des valeurs de date et d’heure avec une précision à la seconde et une plage de[1970-01-01 00:00:00, 2106-02-07 06:28:15]. Il nécessite 4 octets par valeur. -
Lorsqu’une précision supérieure est nécessaire,
DateTime64peut être utilisé. Il permet de stocker la date et l’heure avec une précision allant jusqu’à la nanoseconde, avec une plage de[1900-01-01 00:00:00, 2299-12-31 23:59:59.99999999]. Il nécessite 8 octets par valeur.
now() pour renvoyer l’heure actuelle, et now64() pour l’obtenir avec la précision spécifiée par le premier argument.
Types Time et Time64
Time et Time64, introduits dans la version 25.6. Ils sont utiles pour représenter des horaires récurrents, des schémas quotidiens ou des situations où il est pertinent de séparer les composantes de date et d’heure.
L’utilisation de
Time et Time64 nécessite d’activer le paramètre : SET enable_time_time64_type = 1;Ces types ont été introduits dans la version 25.6Time stocke les heures, les minutes et les secondes avec une précision à la seconde. Stocké en interne sous la forme d’un entier signé sur 32 bits, il prend en charge une plage de [-999:59:59, 999:59:59], ce qui autorise des valeurs supérieures à 24 heures. Cela peut être utile pour suivre le temps écoulé ou effectuer des opérations arithmétiques qui produisent des valeurs en dehors d’une seule journée.
Pour une précision inférieure à la seconde, Time64 stocke l’heure avec un nombre configurable de secondes fractionnaires sous la forme d’une valeur Decimal64 signée. Il accepte un paramètre de précision (0-9) pour définir le nombre de chiffres fractionnaires. Les valeurs de précision courantes sont 3 (millisecondes), 6 (microsecondes) et 9 (nanosecondes).
Ni Time ni Time64 ne prennent en charge les fuseaux horaires - ils représentent des valeurs d’heure pures, sans contexte régional.
Créons une table avec des colonnes de temps :
Time, les valeurs numériques sont interprétées comme des secondes depuis 00:00:00. Pour Time64, les valeurs numériques sont interprétées comme des secondes depuis 00:00:00, la partie fractionnaire étant interprétée selon la précision de la colonne :
Fuseaux horaires
DateTime ou DateTime64 :
America/New_York.
dt_1etdt64_1sont automatiquement convertis enEurope/Berlinà l’exécution de la requête.dt_2etdt64_2n’avaient pas de fuseau horaire spécifié et utilisent donc le fuseau horaire local du serveur, qui est iciEurope/London.
dt_1 et dt64_1 sont convertis en Europe/Berlin, tandis que dt_2 et dt64_2 utilisent le fuseau horaire local du serveur.
Fonctions de date et d’heure
toDate pour convertir une valeur DateTime en type Date :
toDateTime64 pour convertir DateTime en DateTime64 :
toDateTime pour passer de Date ou DateTime64 à DateTime :