Cet article contient des exemples de DATE_FORMAT()
fonction dans MySQL.
Le DATE_FORMAT()
La fonction permet de renvoyer une date dans un format spécifié. Par exemple, vous pouvez l'utiliser pour renvoyer 2020-06-18 le jeudi juin 2020 , ou tout autre format dont vous avez besoin.
Syntaxe
La syntaxe ressemble à ceci :
DATE_FORMAT(date,format)
Où date
est la date que vous voulez formater, et format
spécifie comment il doit être formaté.
Pour obtenir une liste des spécificateurs de format valides, consultez le tableau au bas de cet article. La valeur de format doit commencer par un signe de pourcentage (%
).
Exemple
Voici un exemple pour illustrer.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Résultat :
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Noms abrégés/abrégés des jours et des mois
Voici un exemple qui formate le résultat en noms courts de jour et de mois.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Résultat :
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Un exemple de base de données
Voici un exemple dans lequel nous formatons la valeur renvoyée par une colonne de base de données stockée en tant que valeur datetime.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Résultat :
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Formater l'heure
Vous pouvez également utiliser DATE_FORMAT()
pour formater le composant d'heure d'un datetime valeur. Exemple :
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Résultat :
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Voici un autre exemple où j'ajoute le AM/PM désignateur :
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Résultat :
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Spécifications disponibles
Les spécificateurs suivants peuvent être utilisés pour spécifier le format de retour. La valeur de format doit commencer par un signe de pourcentage (%
).
Spécificateur | Description |
---|---|
%a | Nom abrégé du jour de la semaine (Sun ..Sat ) |
%b | Nom abrégé du mois (Jan ..Dec ) |
%c | Mois, numérique (0 ..12 ) |
%D | Jour du mois avec suffixe anglais (0th , 1st , 2nd , 3rd , …) |
%d | Jour du mois, numérique (00 ..31 ) |
%e | Jour du mois, numérique (0 ..31 ) |
%f | Microsecondes (000000 ..999999 ) |
%H | Heure (00 ..23 ) |
%h | Heure (01 ..12 ) |
%I | Heure (01 ..12 ) |
%i | Minutes, numérique (00 ..59 ) |
%j | Jour de l'année (001 ..366 ) |
%k | Heure (0 ..23 ) |
%l | Heure (1 ..12 ) |
%M | Nom du mois (January ..December ) |
%m | Mois, numérique (00 ..12 ) |
%p | AM ou PM |
%r | Heure, 12 heures (hh:mm:ss suivi de AM ou PM ) |
%S | Secondes (00 ..59 ) |
%s | Secondes (00 ..59 ) |
%T | Heure, 24 heures (hh:mm:ss ) |
%U | Semaine (00 ..53 ), où dimanche est le premier jour de la semaine ; WEEK() mode 0 |
%u | Semaine (00 ..53 ), où lundi est le premier jour de la semaine ; WEEK() mode 1 |
%V | Semaine (01 ..53 ), où dimanche est le premier jour de la semaine ; WEEK() mode 2 ; utilisé avec %X |
%v | Semaine (01 ..53 ), où lundi est le premier jour de la semaine ; WEEK() mode 3 ; utilisé avec %x |
%W | Nom du jour de la semaine (Sunday ..Saturday ) |
%w | Jour de la semaine (0 =dimanche..6 =Samedi) |
%X | Année de la semaine où dimanche est le premier jour de la semaine, numérique, quatre chiffres ; utilisé avec %V |
%x | Année de la semaine, où lundi est le premier jour de la semaine, numérique, quatre chiffres ; utilisé avec %v |
%Y | Année, numérique, quatre chiffres |
%y | Année, numérique (deux chiffres) |
%% | Un % littéral personnage |
% | x , pour tout "x ” non listé ci-dessus |