Mysql
 sql >> Base de données >  >> RDS >> Mysql

Format de date MySQL - ce que vous devez savoir

MySQL est dérivé de "My" - la fille du cofondateur et SQL - Structured Query Language. Il s'agit d'un système de gestion de base de données relationnelle de type open source. Ce système de base de données relationnelle aide à organiser les données dans des tables relatables, permettant ainsi des relations structurelles de différents ensembles de données.

La date MySQL est l'un des types de données temporelles qui peuvent gérer les valeurs de données aux côtés d'autres types de données tels que les types de données numériques, les types de données String, les types de données booléennes, la date et l'heure et les types de données spatiales.

La fonction DATE_FORMAT() est utilisée dans MySQL pour formater la date en utilisant la valeur de format spécifiée. Par exemple, si une date est fournie, la fonction la formatera en fonction des paramètres spécifiés.

Syntaxe du format de date MySQL

DATE_FORMAT(date, format)

La fonction de syntaxe ci-dessus accepte deux paramètres comme indiqué ci-dessous :

  • date - Il spécifie la date à formater
  • format - Il définit le format à utiliser pour formater la date

Vous trouverez ci-dessous une liste de formats avec lesquels vous devez vous familiariser lorsque vous utilisez la fonction de date.

  • %a – ce format affiche le nom du jour de la semaine. il est limité du dimanche au samedi.
  • %b - ce symbole de format affiche le nom du mois. il est restreint de janvier à décembre.
  • %c – ce symbole de format indique le nom numérique du mois. il est limité de 0 à 12
  • %D - ce symbole de format affiche la valeur numérique du jour du mois suivi d'un suffixe tel que 1er ou 2e.
  • %e – ce symbole de format indique la valeur numérique du jour du mois. il est limité de 0 à 31
  • %f - ce symbole de format affiche les microsecondes. il est limité de 000000 à 999999.
  • %H – ce symbole de format indique l'heure. Il est limité de 00 à 23.
  • %i – ce symbole de format affiche les minutes. il est limité de 00 à 59.
  • %j - ce symbole de format indique le jour de l'année. il est limité de 001 à 366.
  • %M – ce symbole de format indique le nom du mois. il est limité de janvier à décembre
  • %p - ce symbole de format indique PM ou AM
  • %S - ce symbole de format affiche les secondes. il est limité de 00 à 59
  • %U - ce symbole de format indique les jours de la semaine où le dimanche est le premier jour. Il est limité de 00 à 53.
  • %W - ce symbole de format indique les jours de la semaine du dimanche au samedi
  • %Y - ce symbole de format affiche la valeur numérique de l'année sous la forme d'un nombre à 4 chiffres

Les formats listés ci-dessus renvoient une date formatée.

Exemple 1 : 

Pour extraire ou afficher l'année à partir de la date actuelle, nous allons exécuter la ligne de commande suivante :

SELECT DATE_FORMAT("2021-09-25", "%Y");
Sortie :
Exemple 2 :

Extrayez le nom du mois à partir d'une date donnée, comme indiqué ci-dessous :

2021-09-25

SELECT DATE_FORMAT("2021-09-25", "%M");
Sortie :
Exemple 3 :

Extraire les heures et les minutes de la date fournie ci-dessous :

2021-09-25

SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Sortie :
Exemple 4 : 

Extrayez numériquement le jour du mois à partir de la date indiquée ci-dessous :

2021-09-25

SELECT DATE_FORMAT("2021-09-25", "%D");
Sortie :
Exemple 5 :

Extrayez respectivement le mois, le jour et l'année de la date fournie ici :

2021-09-25

SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Sortie :

La date MySQL utilise le format ; aaaa-mm-jj pour stocker une valeur de données, et ce format est généralement fixé sans autorisation de le modifier. Pour les besoins de stockage de MySQL, pour stocker une seule valeur de date, il utiliserait environ 3 octets et a une valeur de date comprise entre 1000-01-01 et 9999-12-31. Par conséquent, un utilisateur qui a besoin de stocker une plage de dates en dehors de ces paramètres n'est possible que par le biais d'entiers. Cependant, ce processus est assez éprouvant et vous obligerait à créer trois colonnes, une pour l'année, une autre pour le mois et la dernière pour la journée.

Il n'est souvent pas recommandé d'essayer dans la plupart des cas si vous souhaitez modifier le format de la date. La désactivation du "mode strict" aidera à convertir toute date invalide en "valeur de date zéro". Une date invalide dans ce cas ne suivrait pas le format de date MySQL standard, par exemple, 2020-01-24. Cela créerait également un besoin de développer des "fonctions stockées", qui reproduiraient les fonctions de date nouvellement créées par MySQL.

Valeurs de date MySQL avec des années à 2 chiffres

MySQL n'acceptera les valeurs d'année à deux chiffres que dans les conditions suivantes :

  1. Les valeurs d'année entre 00 et 69 sont converties en 2000-2069
  2. Les valeurs d'année entre 70 et 79 sont converties en 1970-1999

Il est toutefois conseillé d'éviter d'utiliser des valeurs de date à deux chiffres car elles sont ambiguës.
Voici un exemple. Un tableau est créé avec le nom "personnes" et comporte des colonnes "types de données" :

CREATE TABLE IF NOT EXISTS people ( JOB_ID integer NOT NULL UNIQUE PRIMARY KEY, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_SALARY decimal(6,0) DEFAULT 8000, MAX_SALARY decimal(6,0) DEFAULT NULL)ENGINE =InnoDB;

La fonction suivante "insérera une ligne" dans le tableau "personnes" :

INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');

Maintenant, "Interrogez les données" à partir de la table "personnes"

SELECT * FROM personnes ;

Après avoir exécuté les commandes ci-dessus, il sera désormais possible d'utiliser l'option de format d'année à 2 chiffres pour insérer des données dans la table "personnes" :

INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');

« 01 » a été utilisé dans la première ligne comme année, se situant entre les (plage 00-69). MySQL le convertira ensuite en 2001, tandis que dans la deuxième ligne, l'utilisation de '84' ​​tombe dans la plage (70-99), et MySQL le convertit en 1984.

Fonctions de date MySQL

MySQL fournit et utilise souvent plusieurs fonctions de date, ce qui aide les utilisateurs à manipuler leurs données plus efficacement et plus rapidement.
Par exemple, l'utilisation de la fonction "MAINTENANT ( )" permet de récupérer la date et l'heure actuelles :

SÉLECTIONNER MAINTENANT( );

Pour obtenir uniquement la partie date d'un "DATETIME", utilisez uniquement la fonction "DATE( )" :

SÉLECTIONNER DATE(MAINTENANT( ) );

Pour obtenir la date système actuelle, utilisez CURDATE ( ):

SELECT CURDATE();

La fonction 'DATE_FORMAT' peut être utilisée pour formater la valeur de date à ce format ; mm/jj/aaaa. Il utilise le modèle de format de date de %m/%d/%Y

SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');

Si vous souhaitez calculer le nombre de jours entre deux valeurs de date, utilisez la fonction "DATEDIFF" :

mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') jours ;

L'utilisation de la fonction "DATE_ADD" permet d'ajouter plusieurs années, mois, semaines ou jours :

SELECT DATE_ADD('2021-09-25', INTERVALLE 31 JOURS);

La fonction "DATE_SUB" peut également être utilisée pour soustraire un intervalle de dates :

SELECT DATE_SUB("2021-09-25", INTERVALLE 10 JOURS);

L'utilisation de la fonction correspondante en termes de date, mois, trimestre et année vous aidera à obtenir le jour, le mois, etc. exacts pour une valeur de date comme indiqué ci-dessous :

SELECT DAY('2000-12-31') jour,
MONTH( '2000-12-31') mois
TRIMESTRE('2000-12-31') trimestre,
YEAR('2000-12-31') année

Jour ǀ mois ǀ trimestre ǀ année ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

Les informations hebdomadaires sur les fonctions associées sont accessibles via :

SELECT
WEEKDAY('2000-12-31') jour de la semaine,
WEEK( '2000-12-31') semaine,
WEEKOFTHEYEAR('2000-12-31') semainedel'année ;

jour de la semaine ǀ semaine ǀ semainedel'année ǀ
6 ǀ 53 ǀ 52 ǀ

La fonction week renvoie toujours un numéro de semaine ayant un index de base zéro. Vous devrez passer un deuxième argument ou passer un "0" pour éviter que cela ne se produise. Passer '1' renverra le numéro de semaine '1-indexé'.

WEEKDAY('2000-12-31') jour de la semaine,
WEEK( '2000-12-31', 1) semaine,
WEEKOFTHEYEAR('2000-12-31') semainedel'année ;

joursemaine ǀ semaine ǀ semaineannée ǀ
6 ǀ 52 ǀ 52 ǀ

Conclusion

Il s'agit d'un court tutoriel d'article qui couvre le sujet du format de date MySQL. Nous espérons que tous les aspects avec lesquels vous vouliez vous familiariser avec les formats de date MySQL ont été couverts. N'oubliez pas de donner un coup de pouce via la section des commentaires si vous trouvez l'article utile.