FAQ MySQLConsultez toutes les FAQ
Nombre d'auteurs : 15, nombre de questions : 155, dernière mise à jour : 22 avril 2014 Ajouter une question
Cette FAQ a été conçue à partir des questions fréquemment posées sur le forum MySQL de Developpez.com. Elle ne prétend pas à être exhaustive et peut contenir des erreurs occasionnelles. Si vous relevez une coquille, n'hésitez pas à nous le faire savoir.
Pour participer à cette FAQ, veuillez envoyer vos réponses sur le forum.
MySQL fournit les fontions CURDATE() et CURRENT_DATE(), qui retournent la date du jour sous une forme 'AAAA-MM-JJ' (texte) ou AAAAMMJJ (numérique), suivant si la fonction est utilisée dans un contexte numérique ou de chaîne de caractère :
Code sql : | Sélectionner tout |
1 2 3 4 | mysql> SELECT CURDATE(); -> '2004-05-21'; mysql> SELECT CURDATE() + 0; -> 20040521 |
- DATE pour stocker l'année, le mois et le jour ('YYYY-MM-DD')
- DATETIME y rajoute l'heure courante ('YYYY-MM-DD HH:MM:SS')
- TIMESTAMP a une taille variable avant la version 4.1, et équivaut à DATETIME à partir de la 4.1.
Les dates sont stockées au format ISO dans la base (bien qu'on puisse les afficher sous diverses présentations). Il faut donc utiliser la syntaxe 'annee-mois-jour' lors d'une insertion de date, ou convertir la date française grâce à la fonction STR_TO_DATE().
Les opérateurs classiques de comparaison (<, >, BETWEEN...) et la clause ORDER BY fonctionnent parfaitement avec les formats DATE, DATETIME et TIMESTAMP.
Ces facilités de traitement font qu'il est préférable de stocker les dates dans un de ces formats plutôt que comme simples chaînes de caractères.
MySQL fournit un ensemble de fontions qui permettent de décomposer un champ de type date pour récupérer le jour de la semaine, le mois, le numéro de la semaine, etc. : DAYOFWEEK(),MONTH()...
Des fonctions existent aussi pour mettre en forme une date avec un format défini par l'utilisateur (DATE_FORMAT()) ce qui évite le recours au formatage dans votre application.
Il existe également des fonctions pour ajouter ou soustraire des durées à une date (DATE_ADD(),DATE_SUB()...)
L'ensemble de ces fonctions se trouve dans le manuel de référence de MySQL, en voici une liste avec des explications résumées. Reportez vous impérativement au manuel pour la syntaxe et les explications détaillées.
- DAYOFWEEK(date) : renvoie le numéro du jour (1 = dimanche)
- WEEKDAY(date) : renvoie le numéro du jour (0 = lundi)
- DAYOFMONTH(date) : retourne le jour du mois, dans un intervalle de 1 à 31
- DAYOFYEAR(date) : retourne le jour de l'année, dans un intervalle de 1 à 366
- MONTH(date) : retourne le mois, dans un intervalle de 1 à 12
- DAYNAME(date) : retourne le nom du jour de la semaine
- MONTHNAME(date) : retourne le nom du mois
- QUARTER(date) : retourne le trimestre, dans un intervalle de 1 à 4
- WEEK(date) : retourne le numéro de la semaine, dans un intervalle de 0 à 53, le dimanche étant considéré comme le premier jour de la semaine
- WEEK(date,first) : retourne le numéro de la semaine, dans un intervalle de 0 à 53, la semaine commençant un dimanche si "first" vaut 0 et un lundi si first vaut 1.
- YEAR(date) : retourne l'année, dans un intervalle de 1000 à 9999
- YEARWEEK(date)YEARWEEK(date,first) Retourne l'année et la semaine, sur le principe de WEEK().
- HOUR(time) : retourne l'heure, dans un intervalle de 0 à 23
- MINUTE(time) : retourne les minutes, dans un intervalle de 0 à 59
- SECOND(time) : retourne les secondes, dans un intervalle de 0 à 59
- PERIOD_ADD(P,N) : ajoute N mois à la période P
- PERIOD_DIFF(P1,P2) : retourne le nombre de mois entre P1 et P2
- DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type) :
opérations arithmétiques sur des dates - EXTRACT(type FROM date) : extrait des portions de date
- TO_DAYS(date) : nombre de jours entre une date et l'année 0
- FROM_DAYS(N) : donne une date située N jours après l'année 0
- DATE_FORMAT(date,format) : formate une date. De nombreux arguments sont possibles.
- TIME_FORMAT(time,format) : formate une heure, sur le principe de DATE_FORMAT()
- CURDATE()
CURRENT_DATE :
date du jour - CURTIME()
CURRENT_TIME :
heure courante - NOW()
SYSDATE()
CURRENT_TIMESTAMP :
date et heure courante - UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format) :
retourne des dates/heures aux formats Unix
SEC_TO_TIME(seconds) : convertit une durée en secondes en heures/minutes/secondes- TIME_TO_SEC(time) : convertit une durée en heures/minutes/secondes en temps une durée secondes
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.