renvoie au chapitre consacré à ceux-ci, ou à la documentation officielle.
Date
On peut manipuler une date (jour, mois, année) avec le type DATE. Ce type représente la date sous forme de chaîne de caractères
'AAAA-MM-JJ' (A = année, M = mois, J = jour). Par exemple : le 21 octobre 2011 sera représenté '2011-10-21'.
Lorsque l'on crée une donnée de type DATE, on peut le faire avec une multitude de formats différents, que MySQL convertira
automatiquement. Il suffit de donner l'année (en deux ou quatre chiffres), suivie du mois (deux chiffres) puis du jour (deux
chiffres). Avec une chaîne de caractères, n'importe quel caractère de ponctuation (ou aucun caractère) peut être utilisé pour
séparer l'année du mois et le mois du jour. On peut aussi utiliser un nombre entier pour initialiser une date (pour autant qu'il ait du
sens en tant que date bien sûr).
MySQL supporte des DATE allant de '1001-01-01' à '9999-12-31'.
Heure
Pour une heure, ou une durée, on utilise le type TIME, qui utilise également une chaîne de caractères pour représenter l'heure :
'[H]HH:MM:SS' (H = heures, M = minutes, S = secondes).
MySQL supporte des TIME allant de '-838:59:59' à '838:59:59'. Ce n'est en effet pas limité à 24h, puisqu'il est
possible de stocker des durées.
Pour créer un TIME, on donne d'abord les heures, puis les minutes, puis les secondes, avec : entre chaque donnée. On peut
éventuellement aussi spécifier un nombre de jours avant les heures (suivi cette fois d'une espace, et non d'un :) : 'J
HH:MM:SS'.
Date et heure
Sans surprise, DATETIME est le type de données représentant une date et une heure, toujours stockées sous forme de chaîne
de caractères : 'AAAA-MM-JJ HH:MM:SS'. Les heures doivent ici être comprises entre 00 et 23, puisqu'il ne peut plus s'agir
d'une durée.
Comme pour DATE, l'important dans DATETIME est l'ordre des données : année, mois, jour, heures, minutes, secondes ;
chacune avec deux chiffres, sauf l'année pour laquelle on peut aussi donner quatre chiffres. Cela peut être un nombre entier, ou
une chaîne de caractères, auquel cas les signes de ponctuation entre chaque partie du DATETIME importent peu.
MySQL supporte des DATETIME allant de '1001-01-01 00:00:00' à '9999-12-31 23:59:59'.
Timestamp
Le timestamp d'une date est le nombre de secondes écoulées depuis le 1 er janvier 1970, 0h0min0s (TUC) et la date en question.
Mais attention, ce qui est stocké par MySQL dans une donnée de type TIMESTAMP n'est pas ce nombre de secondes, mais
bien la date, sous format numérique : AAAAMMJJHHMMSS (contrairement à DATE, TIME et DATETIME qui utilisent des chaînes
de caractères).
Un timestamp est limité aux dates allant du 1 er janvier 1970 00h00min00s au 19 janvier 2038 03h14min07s.
Année
Le dernier type temporel est YEAR, qui stocke une année sous forme d'entier. Nous n'en parlerons pas beaucoup dans cette
partie.
YEAR peut contenir des années comprises entre 1901 et 2155.
Date actuelle
Il existe deux fonctions permettant d'avoir la date actuelle (juste la date, sans l'heure, donc au format DATE) :
CURDATE() ;
CURRENT_DATE(), qui peut également s'utiliser sans parenthèses, comme plusieurs autres fonctions temporelles.
Code : SQL
Partie 4 : Fonctions : manipuler les dates
195/414
www.openclassrooms.com
Précédent

- 195/413

Suivant