Maison > Article > base de données > Quel type de temps est utilisé dans MySQL ?
Il existe trois types de types d'heure : 1. Le type TIME, utilisé pour les valeurs qui nécessitent uniquement des informations temporelles. Il nécessite 3 octets pour le stockage et le format est "HH:MM:SS" ; pour les valeurs qui nécessitent des valeurs simultanées contenant des informations de date et d'heure, elles nécessitent 8 octets lorsqu'elles sont stockées, au format "AAAA-MM-JJ HH:MM:SS" 3. Type TIMESTAMP, utilisé pour les valeurs qui en ont besoin ; pour contenir à la fois les informations de date et d'heure, 4 octets sont requis pour le stockage et le format est "AAAA-MM-JJ HH:MM:SS".
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Il existe de nombreux types de données représentant la date et l'heure dans MySQL : YEAR, TIME, DATE, DTAETIME, TIMESTAMP. Lorsque vous enregistrez uniquement les informations sur l’année, vous ne pouvez utiliser que le type ANNÉE.
Chaque type a une plage de valeurs légales Lorsqu'une valeur illégale est spécifiée, le système insérera une valeur « zéro » dans la base de données.
Il existe trois types de temps qui peuvent être exprimés.
Nom du type | Format de l'heure | Plage de dates | Exigences de stockage |
---|---|---|---|
TIME | HH:MM:SS | -838:59:59 ~ 838:59:59 | Section de 3 mots |
DATETIME | AAAA-MM-JJ HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 octets |
TIMESTAMP | AAAA-MM-JJ HH:MM:SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4 octets |
Type TIME
Le type TIME est utilisé pour les valeurs qui nécessitent uniquement des informations temporelles et nécessitent 3 octets pour le stockage. Le format est HH:MM:SS. HH représente les heures, MM représente les minutes et SS représente les secondes.
La plage de valeurs du type TIME est -838:59:59~838:59:59 La raison pour laquelle la partie heure est si grande est que le type TIME ne peut pas seulement être utilisé pour représenter l'heure d'une journée ( doit être inférieur à 24 heures), mais peut également être un certain temps Le temps écoulé depuis un événement ou le temps entre deux événements (peut être supérieur à 24 heures, voire négatif).
Les valeurs TIME peuvent être spécifiées en utilisant différents formats, comme indiqué ci-dessous.
'D HH:MM:SS' chaîne de format. Ces syntaxes « non strictes » peuvent également être utilisées : 'HH:MM:SS', 'HH:MM', 'D HH' ou 'SS'. D représente ici le jour, qui peut prendre une valeur comprise entre 0 et 34. Lors de l'insertion dans la base de données, D est converti en heures et enregistré au format "D*24+HH".
Format 'HHMMSS', une chaîne sans séparateurs, ou une valeur numérique au format HHMMSS, en supposant une heure significative. Par exemple, « 101112 » signifie « 10:11:12 », mais « 106112 » est illégal (il comporte une partie minutes dénuée de sens) et deviendra 00:00:00 une fois stocké.
Astuce : lors de l'attribution de valeurs abrégées à la colonne TIME, veuillez noter : s'il n'y a pas de deux-points, MySQL suppose que les deux chiffres les plus à droite représentent les secondes lors de l'interprétation de la valeur. (MySQL interprète les valeurs TIME comme l'heure passée plutôt que l'heure actuelle). Par exemple, un lecteur pourrait penser que « 1112 » et 1112 signifient 11:12:00 (soit 12 minutes après 11 heures), mais MySQL les interprète comme 00:11:12 (soit 11 minutes et 12 secondes). ). De même, « 12 » et 12 sont interprétés comme 00:00:12. Au contraire, si deux points sont utilisés dans la valeur TIME, ils sont définitivement considérés comme l'heure de la journée, c'est-à-dire que « 11:12 » signifie 11:12:00 et non 00:11:12.
Type DATETIME
Le type DATETIME est utilisé pour les valeurs qui doivent contenir à la fois des informations de date et d'heure et nécessite 8 octets pour le stockage. Le format de date est « AAAA-MM-JJ HH:MM:SS », où AAAA représente l'année, MM représente le mois, DD représente le jour, HH représente l'heure, MM représente la minute et SS représente la seconde.
Lors de l'attribution de valeurs aux champs de type DATETIME, vous pouvez utiliser des données de type chaîne ou de type numérique à insérer, à condition qu'elles soient conformes au format de date de DATETIME, comme indiqué ci-dessous :
Utilisez 'AAAA-MM -JJ HH:MM :SS' ou 'AAAAMMJJHHMMSS' La date représentée au format chaîne, la plage de valeurs est '1000-01-01 00:00:00' ~ '9999-12-3 23:59:59'. Par exemple, si vous saisissez « 2014-12-31 05:05:05 » ou « 20141231050505 », la valeur DATETIME insérée dans la base de données sera 2014-12-31 05:05:05.
Une date représentée au format de chaîne « AA-MM-JJ HH:MM:SS » ou « AAMMJJHHMMSS », où AA représente la valeur de l'année à deux chiffres. Comme auparavant, la valeur de l'année dans la plage de « 00 à 79 » est convertie en « 2000 à 2079 », et la valeur de l'année dans la plage de « 80 à 99 » est convertie en « 1980 à 1999 ». Par exemple, si vous saisissez « 14-12-31 05:05:05 », le DATETIME inséré dans la base de données est 2014-12-31 05:05:05 ; si vous saisissez 141231050505, le DATETIME inséré dans la base de données est 2014 ; -12-31 05:05:05 .
Date et heure exprimées au format numérique AAAAMMJJHHMMSS ou AAMMJJHHMMSS. Par exemple, si vous entrez 20141231050505, le DATETIME inséré dans la base de données est 2014-12-31 05:05:05 ; si vous entrez 140505050505, le DATETIME inséré dans la base de données est 2014-12-31 05:05:05.
Astuce : MySQL autorise une syntaxe "détendue" : n'importe quel signe de ponctuation peut être utilisé comme séparateur entre les parties de date ou les parties d'heure. Par exemple, '98-12-31 11:30:45', '98.12.31 11+30+35', '98/12/31 11*30*45' et '98@12@31 11^30^ 45' sont équivalents et ces valeurs peuvent être insérées correctement dans la base de données.
Type TIMESTAMP
Le format d'affichage de TIMESTAMP est le même que DATETIME, la largeur d'affichage est fixée à 19 caractères, le format de date est AAAA-MM-JJ HH:MM:SS, ce qui nécessite 4 octets pour le stockage. Toutefois, la plage de valeurs de la colonne TIMESTAMP est plus petite que la plage de valeurs de DATETIME, qui est « 1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC. Lors de l'insertion de données, assurez-vous qu'elles se situent dans la plage de valeurs légales.
Conseils : Le temps universel coordonné (anglais : temps universel coordonné, français : Temps Universel Coordonné) est également connu sous le nom de temps universel unifié, de temps standard universel et de temps international coordonné. Les abréviations anglaise (CUT) et française (TUC) sont différentes et, à titre de compromis, l'abréviation est UTC.
TIMESTAMP et DATETIME, en plus des différents octets de stockage et plages prises en charge, la plus grande différence est :
DATETIME Lors du stockage des données de date, elles sont stockées dans le format d'entrée réel, c'est-à-dire quelle que soit l'entrée qui est stockée. Indépendant du fuseau horaire ;
La valeur TIMESTAMP est stockée au format UTC (Temps universel coordonné). Le fuseau horaire actuel est converti lors du stockage, puis reconverti dans le fuseau horaire actuel lors de la récupération. Autrement dit, lors de l'interrogation, la valeur temporelle affichée est différente en fonction du fuseau horaire actuel.
Conseil : Si vous attribuez une valeur DATE à un objet DATETIME ou TIMESTAMP, la partie heure de la valeur résultante est définie sur « 00:00:00 », donc la valeur DATE ne contient pas d'informations temporelles. Si un objet DATE se voit attribuer une valeur DATETIME ou TIMESTAMP, la partie heure de la valeur résultante est supprimée, de sorte que la valeur DATE ne contient aucune information temporelle.
【Recommandations associées : tutoriel vidéo mysql】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!