Maison  >  Article  >  base de données  >  Résumé de la fonction de date MYSQL

Résumé de la fonction de date MYSQL

小云云
小云云original
2017-12-04 11:24:351597parcourir

Les fonctions de date et d'heure font référence aux fonctions utilisées pour analyser et traiter les valeurs de date et les valeurs d'heure dans les formules. Dans cet article, nous partagerons avec vous un résumé des fonctions de date MYSQL.

Voir 7.3.6 Types de date et d'heure pour une description de la plage de valeurs de chaque type et des formats valides pour spécifier les valeurs de date et d'heure.

Voici un exemple utilisant les fonctions de date. La requête suivante sélectionne tous les enregistrements dont la valeur date_col se situe dans les 30 derniers jours :

mysql> SELECT Something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30 ; >
DAYOFWEEK(date)
Renvoie le jour de la semaine index de la date (1=dimanche, 2=lundi, ...7=samedi). Ces valeurs d'index correspondent à la norme ODBC.
mysql> select DAYOFWEEK('1998-02-03');
-> 3

WEEKDAY(date)
Renvoie l'index de la semaine de la date (0=lundi, 1= mardi, …6= dimanche).
mysql> sélectionnez WEEKDAY('1997-10-04 22:23:00');
-> 5
mysql> sélectionnez WEEKDAY('1997-11-05'); > 2

DAYOFMONTH(date)
Renvoie le jour du mois de la date, compris entre 1 et 31.
mysql> select DAYOFMONTH('1998-02-03');
-> 3

DAYOFYEAR(date)
Renvoie le nombre de jours dans l'année pour la date, entre 1 et 366 dans la fourchette.
mysql> select DAYOFYEAR('1998-02-03');
-> 34

MONTH(date)
Renvoie le mois de la date, allant de 1 à 12.
mysql> select MONTH('1998-02-03');
-> 2

DAYNAME(date)
Renvoie le nom du jour de la semaine.
mysql> select DAYNAME("1998-02-05");
-> 'Jeudi'

MONTHNAME(date)
Renvoie le nom du mois de la date.
mysql> select MONTHNAME("1998-02-05");
-> 'Février'

QUARTER(date)
Renvoie le trimestre de l'année, allant de 1 à 4.
mysql> select QUARTER('98-04-01');
-> 2

SEMAINE(date)
 
SEMAINE(date,premier)
pour Où dimanche est le premier jour de la semaine, il y a un seul argument qui renvoie le numéro de semaine de la date, compris entre 0 et 52. La forme à 2 arguments WEEK() permet
de préciser si la semaine commence le Dimanche ou lundi. Si le deuxième paramètre est 0, la semaine commence dimanche, si le deuxième paramètre est 1,
commence lundi.
mysql> sélectionnez SEMAINE('1998-02-20');
->
mysql> select WEEK('1998-02-20',1);
-> 8

YEAR(date)
Renvoie l'année de la date, allant de 1000 à 9999. .
mysql> select YEAR('98-02-03');
-> 1998

HOUR(time)
Renvoie l'heure, allant de 0 à 23.
mysql> select HOUR('10:05:03');
-> 10

MINUTE(time)
Renvoie la minute, allant de 0 à 59.
mysql> select MINUTE('98-02-03 10:05:03');
-> 5

SECOND(time)
Renvoie le nombre de secondes, la plage est de 0 à 59.
mysql> select SECOND('10:05:03');
-> 3

PERIOD_ADD(P,N)
Ajouter N mois à l'étape P (au format AAMM ou AAAAMM). Renvoie la valeur au format AAAAMM. Notez que le paramètre de phase P n'est pas une valeur de date.
mysql> select PERIOD_ADD(9801,2);
-> 199803

PERIOD_DIFF(P1,P2)
Renvoie le nombre de mois entre les périodes P1 et P2, P1 et P2 devraient Au format AAMM ou AAAAMM. Notez que les paramètres de période P1 et P2 ne sont pas des valeurs de date. > >
ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)
Ces fonctions effectuent des opérations de date. Depuis MySQL 3.22, ils sont nouveaux. ADDDATE() et SUBDATE() sont des synonymes de DATE_ADD() et DATE_SUB().
Dans MySQL 3.23, vous pouvez utiliser + et - au lieu de DATE_ADD() et DATE_SUB(). (voir exemple) date est une valeur
DATETIME ou DATE qui spécifie la date de début, expr est une expression qui spécifie la valeur d'intervalle à ajouter ou soustraire de la date de début, expr est une chaîne avec laquelle elle peut commencer ; 🎜 >Un début "-" indique un intervalle négatif. type est un mot-clé qui spécifie comment l'expression doit être interprétée. La fonction EXTRACT(type FROM date) renvoie l'intervalle "type" à partir de la date
. Le tableau suivant montre comment les paramètres type et expr sont liés : type valeur signification format d'expr attendu
SECOND secondes SECONDES
MINUTE minutes MINUTES
HEURE heure HEURES
JOUR jours JOURS
MOIS mois MOIS
ANNÉE ANNÉES
MINUTE_SECOND minutes et secondes "MINUTES:SECONDS"
HOUR_MINUTE heures et minutes "HOURS:MINUTES"
DAY_HOUR jours et heures "DAYS HOURS"
YEAR_MONTH années et mois "ANNÉES- MOIS "
HOUR_SECOND heures, minutes, "HOURS:MINUTES:SECONDS"
DAY_MINUTE jours, heures, minutes "DAYS HOURS:MINUTES"
DAY_SECOND jours, heures, minutes, secondes" DAYS HOURS:MINUTES:SECONDS "

MySQL autorise tout délimiteur de ponctuation au format expr. Indique que les délimiteurs recommandés sont affichés. Si l'argument date est une valeur DATE et que votre calcul est juste
Contient les composants ANNÉE, MOIS et JOUR (c'est-à-dire aucun composant temporel) et le résultat est une valeur DATE. Sinon, le résultat est une valeur DATETIME.

mysql> SELECT "1997-12-31 23:59:59" + INTERVALLE 1 SECONDE ; "1997-12-31"
-> mysql> SELECT "1998-01-01" - INTERVALLE 1 SECONDE
-> 1997-12-31 23:59:59
mysql> ",
INTERVALLE 1 SECONDE);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVALLE 1 JOUR);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVALLE "1:1 " MINUTE_SECOND);
-> 01/01/1998 00:01:00
mysql> SELECT DATE_SUB("01/01/1998 00:00:00",
INTERVAL "1 1:1 :1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> ; SELECT DATE_ADD("1998-01-01 00:00:00",
INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997- 12-02
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
- > 1999
SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03 ");
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
-> 20102

Si vous précisez une valeur d'intervalle trop courte (à l'exclusion de l'intervalle attendu par le mot-clé type), MySQL suppose que vous avez omis la valeur d'intervalle La partie la plus à gauche. Par exemple,
Si vous spécifiez un type de DAY_SECOND, la valeur expr devrait avoir des composants jour, heure, minute et seconde. Si vous spécifiez une valeur telle que "1:10",
MySQL suppose que les parties jour et heure sont manquantes et que la valeur représente les minutes et les secondes. En d'autres termes, "1:10" DAY_SECOND est interprété d'une manière équivalente à "1:10" MINUTE_SECOND
, ce qui est ambigu avec la façon dont MySQL interprète la valeur TIME pour représenter un temps écoulé plutôt que comme un temps écoulé. moment de la journée. Si vous utilisez une date vraiment incorrecte,
le résultat est NULL. Si vous incrémentez MONTH, YEAR_MONTH ou YEAR et que la date résultante est supérieure au nombre maximum de jours du nouveau mois, les jours sont ajustés au nombre maximum de jours du nouveau mois.

mysql> select DATE_ADD('1998-01-30', Interval 1 Month);
-> 1998-02-28

Notez que dans l'exemple précédent, le mot INTERVAL et les mots-clés de type ne sont pas sensibles à la casse.
TO_DAYS(date)
Étant donné une date, renvoie un nombre de jours (nombre de jours à partir de l'année 0).
mysql> sélectionnez TO_DAYS(950501);
-> 728779
mysql> sélectionnez TO_DAYS('1997-10-07'); ) n'est pas destiné à être utilisé avec des valeurs antérieures à l'avènement du calendrier grégorien (1582).

FROM_DAYS(N)
Étant donné un nombre de jours N, renvoie une valeur DATE.
mysql> select FROM_DAYS(729669);
-> '1997-10-07'

TO_DAYS() n'est pas destiné à être utilisé avec des valeurs avant l'avènement du calendrier grégorien. (1582) .

DATE_FORMAT(date,format)
Formatez la valeur de la date en fonction de la chaîne de format. Les modificateurs suivants peuvent être utilisés dans la chaîne de format : %M nom du mois (janvier... décembre)
%W nom de la semaine (dimanche... samedi)
%D jour du mois avec préfixe anglais (1er , 2ème, 3ème, etc.)
%Y année, numéro, 4 chiffres
%y année, numéro, 2 chiffres
%un nom abrégé du jour de la semaine (Dim......Sam )
%d Nombre de jours dans le mois, nombre (00……31)
%e Nombre de jours dans le mois, nombre (0……31)
%m Mois, nombre (01… …12)
%c Mois, Nombre (1...12)
%b Nom du mois abrégé (janvier...décembre)
%j Nombre de jours dans une année (001...366 )
%H Heure (00...23)
%k heures (0…23)
%h heures (01…12)
%I heures (01…12)
%l heures (1…12)
%i minutes, nombre (00……59)
%r heure, 12 heures (hh:mm:ss [AP]M)
%T heure, 24 heures (hh:mm:ss)
%S secondes (00……59)
%s secondes (00……59)
%p AM ou PM
%w Le nombre de jours dans une semaine (0=dimanche…6=samedi)
%U Semaine (0……52), ici dimanche est le premier jour de la semaine
%u Semaine (0……52), ici lundi est le premier jour de la semaine
%% Un texte "%".

Tous les autres caractères sont copiés dans le résultat sans interprétation.

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> 'Samedi octobre 1997'
mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> 1997-10-04 22:23:00',
'%D %y %a %d %m %b %j');
-> >mysql> sélectionnez DATE_FORMAT('1997-10-04 22:23:00',
'%H %k %I %r %T %S %w'); 22:23:00 PM 22:23:00 00 6'
Dans MySQL3.23, % est requis avant le caractère modificateur de format. Dans les versions antérieures de MySQL, % était facultatif.

TIME_FORMAT(time,format)
Ceci est utilisé comme la fonction DATE_FORMAT() ci-dessus, mais la chaîne de format ne peut contenir que les modificateurs de format qui gèrent les heures, les minutes et les secondes.
D'autres modificateurs produisent une valeur NULL ou 0.
CURDATE()

CURRENT_DATE
Renvoie la valeur de la date du jour au format 'AAAA-MM-JJ' ou AAAAMMJJ, selon que la fonction est utilisée dans un contexte de chaîne ou numérique.
mysql> sélectionnez CURDATE();
-> '1997-12-15'
mysql> sélectionnez CURDATE() + 0;
-> )
 
CURRENT_TIME
Renvoie la valeur de l'heure actuelle au format 'HH:MM:SS' ou HHMMSS, selon que la fonction est utilisée dans un contexte de chaîne ou numérique.
mysql> sélectionnez CURTIME();
-> '23:50:26'
mysql> sélectionnez CURTIME() + 0;
-> )

SYSDATE()

CURRENT_TIMESTAMP
Renvoie la date et l'heure actuelles au format 'AAAA-MM-JJ HH:MM:SS' ou AAAAMMJJHHMMSS, selon que la fonction est au format une chaîne de caractères est toujours utilisée dans le contexte des nombres
.
mysql> sélectionnez MAINTENANT();
-> '1997-12-15 23:50:26'
mysql> sélectionnez MAINTENANT() + 0;
->
UNIX_TIMESTAMP()

UNIX_TIMESTAMP(date)
Si appelé sans arguments, renvoie un horodatage Unix (nombre de secondes depuis '1970-01-01 00:00:00' GMT). Si UNIX_TIMESTAMP() est appelé avec un argument de date
, il renvoie le nombre de secondes depuis « 1970-01-01 00:00:00 » GMT. date peut être une chaîne DATE, une chaîne DATETIME
, un TIMESTAMP ou un nombre en heure locale au format AAMMJJ ou AAAAMMJJ.
mysql> sélectionnez UNIX_TIMESTAMP('1997-10-04 22:23:00'); 🎜>Lorsque UNIX_TIMESTAMP est utilisé sur une colonne TIMESTAMP, la fonction acceptera la valeur directement, sans la transformation implicite "chaîne en horodatage Unix".

FROM_UNIXTIME(unix_timestamp)
Renvoie la valeur représentée par le paramètre unix_timestamp au format 'AAAA-MM-JJ HH:MM:SS' ou AAAAMMJJHHMMSS, selon que la fonction est dans une chaîne
ou utilisé dans un contexte numérique.
mysql> sélectionnez FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> sélectionnez FROM_UNIXTIME(875996580) + 0; (unix_timestamp,format)
Renvoie une chaîne représentant l'horodatage Unix, formatée selon la chaîne de format. format peut contenir les mêmes modificateurs que ceux répertoriés dans la fonction DATE_FORMAT().
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x');
-> x'

SEC_TO_TIME(seconds)
Renvoie le paramètre secondes, converti en heures, minutes et secondes. La valeur est au format 'HH:MM:SS' ou HHMMSS, selon que la fonction est dans. une chaîne ou Utilisé dans le contexte de nombres
.
mysql> sélectionnez SEC_TO_TIME(2378);
-> '00:39:38'
mysql> sélectionnez SEC_TO_TIME(2378) + 0; TIME_TO_SEC(time)
Renvoie le paramètre time, converti en secondes.
mysql> sélectionnez TIME_TO_SEC('22:23:00');
-> 80580
mysql> >

Ce qui précède est un résumé des fonctions de date MYSQL, j'espère que cela pourra aider tout le monde.

Recommandations associées :


Fonctions de date et utilisation flexible de l'encapsulation de fonctions



Fonctions de date MySQL couramment utilisées



Collection de fonctions de date MYSQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn