GNU/Linux >> Tutoriels Linux >  >> Cent OS

Guide de la fonction de date MySQL avec exemples

Présentation

MySQL est livré avec de nombreuses fonctions intégrées qui vous permettent de manipuler des données. Ces fonctions sont regroupées en catégories :fonctions de date, fonctions de chaîne, fonctions mathématiques et autres.

Les fonctions de date vous offrent de nombreuses options pour modifier, calculer et convertir les expressions de date, d'heure et de date/heure dans MySQL.

Dans ce didacticiel, vous découvrirez les fonctions de date et d'heure de MySQL et leur fonctionnement, à l'aide d'exemples pratiques.

Fonctions liées à la date

CURDATE OU CURRENT_DATE

Renvoie la date actuelle au format "AAAA-MM-JJ" ou "AAAAMMJJ" avec le CURDATE OU CURRENT_DATE commande.

La syntaxe de base :

CURDATE();

Par exemple, si vous exécutez :

SELECT CURDATE();

MySQL répond avec la date actuelle au format :

2021-01-17

DATE

Renvoie la date à partir d'une expression datetime en utilisant DATE commande.

La syntaxe de base :

DATE(datetime);

Par exemple, si vous exécutez :

SELECT DATE('2021-01-17 10:12:16');

La sortie est :

2021-01-17

DATE_ADD ou ADDDATE

Ajoutez une valeur d'heure/date à une expression de date avec le DATE_ADD ou ADDDATE fonction.

La syntaxe de base :

DATE_ADD(date, INTERVAL value unit);

Remplacer date avec l'expression de date à laquelle vous souhaitez ajouter une heure/date. L'unité de valeur est l'heure/la date que vous souhaitez ajouter. Il doit être exprimé en une valeur numérique avec l'unité de la valeur.

L'unité peut être :

  • DEUXIÈME
  • MINUTES
  • HEURE
  • JOUR
  • SEMAINE
  • MOIS
  • TRIMESTRE
  • ANNÉE
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

Par exemple, si vous exécutez :

SELECT DATE_ADD('2021-01-17 07:14:21', INTERVAL 20 MINUTE);

La sortie renvoie le résultat :

2021-01-17 07:34:21

DATE_FORMAT

Formater une date en utilisant DATE_FORMAT .

La syntaxe de base :

DATE_FORMAT(date, format);

La date est l'expression de date que vous souhaitez reformater, tandis que le format est une combinaison des spécificateurs suivants :

Par exemple, si vous exécutez :

SELECT DATE_FORMAT('2021-01-17', '%W %M %Y');

La sortie affiche le résultat :

Sunday January 2021

DATE_SUB ou SUBDATE

Soustrayez une valeur d'heure/date à une expression de date avec le DATE_SUB ou SUBDATE fonction.

La syntaxe de base :

DATE_SUB(date, INTERVAL value unit);

Remplacer date avec l'expression de date que vous souhaitez soustraire. L'unité de valeur est l'heure/la date que vous souhaitez soustraire. Il doit être exprimé en valeur numérique avec l'unité de la valeur.

Rechercher une liste de types d'unités dans la section DATE_ADD.

Par exemple, si vous exécutez :

SELECT DATE_SUB('2021-01-17 07:14:21', INTERVAL 1 HOUR);

La sortie renvoie le résultat :

2021-01-17 06:14:21

DATEDIFF

Renvoie le nombre de jours entre deux expressions de date avec le DATEDIFF fonction.

La syntaxe de base :

DATEDIFF(date1,date2);

Par exemple :

SELECT DATEDIFF('2021-01-23','2021-01-14');

Renvoie le résultat :

9

EXTRAIT

Pour extraire une partie d'une expression date/datetime, utilisez le EXTRACT fonction.

La syntaxe de base :

EXTRACT(unit FROM date);

Dans la commande, vous devez spécifier quelle unité vous souhaitez extraire à partir de la date spécifiée .

Trouvez une liste d'unités que vous pouvez utiliser dans la description du DATE_ADD.

Par exemple, lorsque vous exécutez :

SELECT EXTRACT(DAY FROM '2021-01-26');

Vous obtenez le résultat :

26

OBTENIR_FORMAT

Renvoie une chaîne de format (une combinaison de spécificateurs) comme spécifié dans l'argument avec GET_FORMAT . Cette fonction est souvent utilisée avec DATE_FORMAT .

La syntaxe de base :

GET_FORMAT(DATE/TIME/DATETIME,format)

Utilisez cette fonction avec des expressions de date, d'heure et de date/heure.

Le format peut être :

  • 'EUR'
  • "États-Unis"
  • 'JIS'
  • 'ISO'
  • 'INTERNE'

Il y a un nombre fini de résultats que vous pouvez obtenir en utilisant le GET_FORMAT une fonction. Vous trouverez ci-dessous une liste de tous les appels de fonction et leurs résultats.

Par exemple, vous pouvez combiner la fonction avec DATE_FORMAT , comme dans l'exemple suivant :

SELECT DATE_FORMAT('2021-01-26', GET_FORMAT(DATE,'EUR'));

Où est le résultat :

26.01.2021

PRENDRE DATE

Renvoie une expression de date à partir d'une année et d'un jour de l'année spécifiés à l'aide de MAKEDATE fonction.

La syntaxe de base :

MAKEDATE(year,day);

Par exemple, si vous exécutez :

SELECT MAKEDATE(2021,34);

La sortie affiche le résultat :

2021-02-03

STR_TO_DATE

Formater une date à partir d'une chaîne avec STR_TO_DATE et renvoie une valeur date/datetime.

La syntaxe de base :

STR_TO_DATE(string, format);

La chaîne est ce que vous voulez reformater, tandis que le format est une combinaison de spécificateurs qui décrivent chaque élément de la chaîne .

Vous pouvez trouver une liste de spécificateurs et leur signification dans la section DATE_FORMAT.

Par exemple, si vous exécutez :

SELECT STR_TO_DATE('January,25,2021', '%M %e %Y');

La sortie affiche :

2021-01-25

DATESYS

Pour renvoyer la date et l'heure actuelles au format "AAAA-MM-JJ hh:mm:ss" ou "AAAAMMJJHMMSS.uuuuuu", utilisez le SYSDATE fonction.

La syntaxe de base :

SYSDATE();

Vous pouvez ajouter le fsp argument pour inclure une précision fractionnaire de seconde (0-6). Dans ce cas, la syntaxe est SYSDATE(fsp); .

La commande ci-dessous :

SELECT SYSDATE();

À ce moment donne le résultat :

2021-01-25 20:21:04

UTC_DATE

Renvoie la valeur de date actuelle en temps universel coordonné (UTC) au format "AAAA-MM-JJ" ou "AAAAMMJJ" avec le UTC_DATE fonction.

La syntaxe de base :

UTC_DATE();

Par exemple, en exécutant la commande suivante :

SELECT UTC_DATE();

Renvoie la date actuelle qui est :

2021-01-25

Fonctions liées au temps

AJOUTER L'HEURE

Ajouter un intervalle de temps à une expression d'heure/date/heure spécifiée à l'aide de ADDTIME .

La syntaxe de base :

ADDTIME(datetime, timevalue)

Par exemple, si vous exécutez :

SELECT ADDTIME('2021-01-25 08:13:11.000021', '3:14:32.000006');

Vous obtenez le résultat :

2021-01-25 11:27:43.000027

CONVERT_TZ

Convertir une expression heure/date/heure d'un fuseau horaire à un autre à l'aide de ADDTIME fonction.

La syntaxe de base :

CONVERT_TZ(datetime, from_timezone,to_timezone)

Par exemple, lorsque vous exécutez :

SELECT CONVERT_TZ('2021-01-25 10:12:00','+00:00','+10:00');

MySQL convertit la date/heure spécifiée en fuseau horaire +10:00 :

2021-01-25 20:12:00

CURTIME ou CURRENT_TIME

Renvoie l'heure actuelle à l'aide de CURTIME ou CURRENT_TIME une fonction. Le résultat renvoie l'heure au format "hh:mm:ss" ou "hhmmss".

La syntaxe de base :

CURTIME();

Vous pouvez inclure une précision fractionnaire de seconde (de 0 à 6) en ajoutant le fsp arguments.

Par exemple, la commande suivante affiche l'heure actuelle avec une précision de trois fractions de seconde :

CURTIME(3);

La sortie répond avec le résultat :

15:19:07.340

HEURE

Renvoie l'heure de l'heure/dateheure spécifiée avec le HOUR fonction.

La syntaxe de base :

TIME(datetime);

Par exemple, si vous exécutez :

SELECT HOUR('08:40:07');

Le résultat est :

8

PRENDRE LE TEMPS

Renvoie une expression de temps à partir des valeurs d'heure, de minute et de seconde spécifiées à l'aide de MAKETIME fonction.

La syntaxe de base :

MAKETIME(hour, minute, second);

Par exemple, vous pouvez exécuter :

SELECT MAKETIME(09,25,00);

Où la sortie affiche :

09:25:00

MICROSECOND

Renvoie les microsecondes de l'expression heure/date/heure spécifiée avec MICROSECOND .

La syntaxe de base :

MICROSECOND(datetime);

Par exemple, vous pouvez exécuter :

SELECT MICROSECOND('2021-01-21 10:23:44.000040');

Où est le résultat :

40

MINUTES

Renvoie les minutes de l'expression heure/date/heure spécifiée à l'aide de MINUTE fonction.

La syntaxe de base :

MINUTE(datetime);

Par exemple, si vous exécutez la commande :

SELECT MINUTE('10:23:44');

Le résultat est :

23

SEC_TO_TIME

Renvoie une valeur de temps à partir d'une valeur de secondes spécifiée avec le SEC_TO_TIME fonction.

La syntaxe de base :

SEC_TO_TIME(seconds);

Par exemple, si vous exécutez la commande :

SELECT SEC_TO_TIME(8897);

La sortie est :

02:28:17

SOUS-HEURE

Soustraire une valeur d'heure d'une expression heure/dateheure à l'aide de SUBTIME fonction.

La syntaxe de base :

SUBTIME(datetime,timevalue);

Par exemple, lorsque vous exécutez :

SELECT SUBTIME('2021-01-21 21:24:00','2:20:1');

La sortie est :

2021-01-21 19:03:59

HEURE

Pour renvoyer la valeur d'heure à partir d'une expression datetime, utilisez le TIME fonction.

La syntaxe de base :

TIME(datetime);

Par exemple :

SELECT TIME('2021-01-22 13:38:10');

Donne le résultat :

13:38:10

TIME_FORMAT

Formatez une valeur de temps dans le format spécifié avec TIME_FORMAT .

La syntaxe de base :

TIME_FORMAT(time,format);

Le format est une combinaison de spécificateurs. Vous pouvez trouver une liste de tous les spécificateurs et leur signification dans la description de la fonction DATE_FORMAT.

Par exemple, en exécutant :

SELECT TIME_FORMAT('13:45:10','%h %i %s %p');

Vous obtenez le résultat :

01 45 10 PM

TIME_TO_SEC

Pour renvoyer la valeur de temps convertie en secondes, utilisez le TIME_TO_SEC .

La syntaxe de base :

TIME_TO_SEC(timevalue);

Par exemple, lorsque vous exécutez :

SELECT TIME_TO_SEC('13:48:05');

Le résultat est :

49685

HORAIRE

Calculez la différence entre deux expressions heure/dateheure avec le TIMEDIFF une fonction. Dans ce cas, le résultat est toujours en valeur temps.

La syntaxe de base :

TIMEDIFF(datetime1,datetime2);

Par exemple, lorsque vous exécutez :

SELECT TIMEDIFF('2021-01-15 11:10:17','2021-01-05 11:10:16');

La sortie renvoie :

240:00:01

TO_SECONDS

Pour convertir une expression date/datetime en secondes, utilisez la fonction TO_SECONDS . Le résultat est le nombre de secondes entre 0 et la date/datetime spécifiée.

La syntaxe de base :

TO_SECONDS(datetime);

Par exemple, si vous exécutez la commande :

SELECT TO_SECONDS('2021-01-21 08:10:17');

Le résultat est :

63778435817

UTC_TIME

Renvoie la valeur de l'heure UTC actuelle avec UTC_TIME . Il renvoie la valeur de l'heure au format "HH:MM:SS" ou "HHMMSS".

La syntaxe de base :

UTC_TIME();

Par exemple, si vous exécutez :

SELECT UTC_TIME();

Vous obtenez le résultat à ce moment :

19:45:21

Fonctions liées à l'horodatage

CURRENT_TIMESTAMP ou LOCALTIMESTAMP

Pour renvoyer la date et l'heure actuelles, utilisez CURRENT_TIMESTAMP ou LOCALTIMESTAMP . Le résultat est renvoyé au format "AAAA-MM-JJ HH-MM-SS" ou "AAAAMMJJHHMMSS.uuuuuu".

La syntaxe de base :

CURRENT_TIMESTAMP();

Par exemple, en exécutant :

SELECT CURRENT_TIMESTAMP();

Le résultat actuel est :

2021-01-25 19:53:55

FROM_UNIXTIME

Renvoie une expression date/datetime à partir d'un horodatage au format Unix avec FROM_UNIXTIME .

La syntaxe de base :

FROM_UNIXTIME(unix_timestamp);

Si vous exécutez la commande sans argument spécifiant le format, elle renvoie le résultat au format "AAAA-MM-JJ hh:mm:ss" ou "AAAAMMJJhhmmss".

Par exemple, si vous exécutez :

SELECT FROM_UNIXTIME(1611231404);

Vous obtenez le résultat :

2021-01-21 12:16:44

Horodatage

Pour renvoyer une expression datetime à partir d'une valeur date ou datetime, utilisez la fonction TIMESTAMP . Si vous ajoutez deux arguments, la sortie renvoie la somme des arguments.

La syntaxe de base :

TIMESTAMP(datetime);
TIMESTAMP(datetime,time);

Par exemple, lorsque vous exécutez la commande :

SELECT TIMESTAMP('2021-01-13','30:50:00');

La sortie affiche le résultat :

2021-01-14 06:50:00

TIMESTAMPADD

Ajouter une valeur d'heure à une expression date/datetime en utilisant le TIMESTAMPADD fonction.

La syntaxe de base :

TIMESTAMPADD(unit,value,datetime);

L'unité peut être :

  • FRAC_SECOND
  • DEUXIÈME
  • MINUTES
  • HEURE
  • JOUR
  • SEMAINE
  • MOIS
  • TRIMESTRE
  • ANNÉE

Par exemple, la commande suivante ajoute 3 jours à la date spécifiée :

SELECT TIMESTAMPADD(DAY,3,'2021-01-18');

Par conséquent, la sortie affiche :

2021-01-21

TIMESTAMPDIFF

Pour calculer la différence entre deux expressions date/datetime, utilisez TIMESTAMPDIFF . La fonction soustrait une valeur datetime de l'autre dans l'unité spécifiée.

La syntaxe de base :

TIMESTAMPDIFF(unit,datetime1,datetime2);

Vous pouvez trouver une liste avec différents types d'unités, consultez la liste dans la section ci-dessus.

Par exemple, vous pouvez calculer la différence entre les deux dates suivantes en jours :

SELECT TIMESTAMPDIFF(DAY,3,'2021-01-18');

Où est le résultat :

13

UNIX_TIMESTAMP

Renvoie un horodatage Unix à partir d'une expression date/datetime avec le UNIX_TIMESTAMP une fonction. L'horodatage Unix représente les secondes entre la date et l'heure spécifiées et "1970-01-01 00:00:00" UTC.

La syntaxe de base :

UNIX_TIMESTAMP(datetime);

Par exemple, en exécutant la commande suivante :

SELECT UNIX_TIMESTAMP('2021-01-25 17:33:00');

Donne le résultat :

1611595980

UTC_TIMESTAMP

Renvoie la date et l'heure UTC actuelles avec UTC_TIMESTAMP . Il renvoie la valeur datetime au format "AAAA-MM-JJ HH:MM:SS" ou "AAAAMMJJHMMSS.uuuuuu".

La syntaxe de base :

UTC_TIMESTAMP(datetime);

Par exemple, la commande :

SELECT UTC_TIMESTAMP();

Renvoie la sortie dans le même format que celui ci-dessous :

2021-01-25 23:18:06

Fonctions liées au jour/semaine/mois/année

JOUR

Renvoie le jour d'un mois à partir d'une expression date/datetime spécifiée avec le DAY fonction.

La syntaxe de base :

DAY(datetime);

Si vous exécutez la commande ci-dessous :

SELECT DAY('2021-01-26 12:32:00');

La sortie renvoie le résultat :

26

DAYNAME

Renvoie le nom du jour de la semaine à partir d'une expression date/datetime spécifiée à l'aide de DAYNAME fonction.

La syntaxe de base :

DAYNAME(datetime);

Par exemple, lorsque vous exécutez la commande :

SELECT DAYNAME('2021-01-26 12:32:00');

MySQL répond avec le résultat :

Tuesday

JOURDUMOIS

Renvoie le jour d'un mois à partir d'une expression date/datetime spécifiée avec DAYOFMONTH .

La syntaxe de base :

DAYOFMONTH(datetime);

Par exemple, lorsque vous exécutez la commande :

SELECT DAYOFMONTH('2021-01-26 12:32:00');

MySQL répond avec le résultat :

26

JOUR DE LA SEMAINE

Renvoie le jour de la semaine en valeur numérique à partir de l'expression date/datetime spécifiée à l'aide de DAYOFWEEK .

La syntaxe de base :

DAYOFWEEK(datetime);

Exécutez la commande ci-dessous :

SELECT DAYOFWEEK('2021-01-26 12:32:00');

Donne la réponse :

3

JOURDEANNÉE

Renvoie le jour d'une année à partir de l'expression date/datetime spécifiée à l'aide de la fonction DAYOFYEAR .

La syntaxe de base :

DAYOFYEAR(datetime);

Par exemple, lorsque vous exécutez la commande :

SELECT DAYOFYEAR('2021-02-26 12:32:00');

La sortie donne le résultat :

57

DÈS_JOURS

Renvoie une expression de date à partir d'une représentation numérique d'un jour à l'aide de la fonction FROM_DAYS .

La syntaxe de base :

FROM_DAYS(number);

Par exemple, en exécutant :

SELECT FROM_DAYS(738181);

L'invite MySQL répond avec le résultat :

2021-01-26

DERNIER_JOUR

Renvoie le dernier jour du mois à partir d'une date/heure spécifiée avec le LAST_DAY fonction.

La syntaxe de base :

LAST_DAY(date);

Par exemple, si vous exécutez la commande suivante :

SELECT LAST_DAY('2021-01-26');

La sortie répond par :

31

MOIS

Renvoie le mois (en valeur numérique) à partir d'une date/dateheure spécifiée en utilisant le MONTH fonction.

La syntaxe de base :

MONTH(date);

Par exemple, lorsque vous exécutez :

SELECT MONTH('2021-01-26');

MySQL répond par :

1

NOMMOIS

Renvoie le nom du mois à partir d'une date/dateheure spécifiée avec le MONTHNAME fonction.

La syntaxe de base :

MONTHNAME(date);

Si vous exécutez la commande :

SELECT MONTH('2021-01-26');

Vous obtenez la réponse suivante :

January

PERIOD_ADD

Pour ajouter un nombre spécifié de mois à une période, utilisez le PERIOD_ADD fonction.

La syntaxe de base :

PERIOD_ADD(period,number);

La période est défini au format AAMM ou AAAAMM, tandis que le nombre est le nombre de mois que vous souhaitez ajouter.

Par exemple :

SELECT PERIOD_ADD(202101, 5);

Donne le résultat :

202106

PERIOD_DIFF

Renvoie le nombre de mois entre deux périodes avec PERIOD_DIFF .

La syntaxe de base :

PERIOD_DIFF(period1,period2);

Chaque période doit être au format AAMM ou AAAAMM.

Par exemple :

SELECT PERIOD_DIFF(202101, 202003);

Produit le résultat :

10

TRIMESTRE

Pour renvoyer un trimestre d'une année à partir d'une date/dateheure spécifiée, utilisez la fonction QUARTER .

La syntaxe de base :

QUARTER(date);

Par exemple, en lançant la commande :

SELECT QUARTER('2021-01-26');

La sortie répond par :

1

TO_DAYS

Convertir une expression date/datetime en une représentation numérique d'un jour avec TO_DAYS .

La syntaxe de base :

TO_DAYS(datetime);

Par exemple, pour la commande :

SELECT TO_DAYS('2021-01-26');

Le résultat est :

738181

SEMAINE

Pour renvoyer le numéro de semaine à partir d'une date spécifiée, utilisez la fonction WEEK .

La syntaxe de base :

WEEK(date);

Vous pouvez également inclure le mode argument, auquel cas la syntaxe est WEEK(date,mode); .

L'argument mode spécifie à partir de quel jour la semaine commence. S'il n'y a pas d'argument, il utilise 0 mode par défaut.

Le tableau suivant décrit chaque mode :

Par exemple, si vous exécutez :

SELECT WEEK('2021-01-26');

La sortie répond par :

4

JOUR DE SEMAINE

Renvoie le jour de la semaine à partir de la date spécifiée en valeur numérique avec WEEKDAY . Chaque nombre représente l'un des jours de la semaine - lundi est 0 , mardi est 1 , et ainsi de suite.

La syntaxe de base :

WEEKDAY(date);

Par exemple, en exécutant la commande suivante :

SELECT WEEKDAY('2021-01-26');

Donne la réponse :

1

SEMAINE DE L'ANNÉE

Pour renvoyer le numéro d'une semaine dans une année, utilisez le WEEKDAY fonction.

La syntaxe de base :

WEEKOFYEAR(date);

Par exemple, lorsque vous exécutez la commande :

SELECT WEEKOFYEAR('2021-01-26');

La sortie affiche le résultat :

3

ANNÉE

Renvoie l'année à partir de la date spécifiée avec le YEAR fonction.

La syntaxe de base :

YEAR(date);

Si vous exécutez la commande suivante :

SELECT YEAR('2021-01-26');

Vous obtenez le résultat :

2021

ANNEE SEMAINE

Renvoie l'année et le numéro de semaine à partir de la date spécifiée en utilisant le YEARWEEK fonction.

La syntaxe de base :

YEARWEEK(date);

Vous pouvez ajouter un mode argument à la syntaxe de base pour spécifier le jour à partir duquel la semaine commence. Pour voir une liste des modes et leur signification, consultez le tableau dans la WEEK fonction.

Par exemple, lorsque vous exécutez la commande :

SELECT YEARWEEK('2021-01-26');

La sortie affiche :

202104

Cent OS
  1. Types de données Redis avec commandes :guide complet

  2. Commande Linux wc avec exemples

  3. Commande Nohup avec exemples

  4. Commande JQ sous Linux avec exemples

  5. Guide du débutant FTP et SFTP avec 10 exemples

Commande IP Linux avec exemples

Commande d'historique avec exemples

DRBD avec MySQL Centos 8

7 exemples de commande de date sous Linux

Le guide de téléchargement ultime de Wget avec 15 exemples impressionnants

Tutoriel sur les fonctions Bash Shell avec 6 exemples pratiques