Maison  >  Article  >  base de données  >  Parlons des fonctions liées aux dates couramment utilisées dans MySQL

Parlons des fonctions liées aux dates couramment utilisées dans MySQL

coldplay.xixi
coldplay.xixiavant
2021-02-20 09:15:351882parcourir

Parlons des fonctions liées aux dates couramment utilisées dans MySQL

Recommandations d'apprentissage gratuites : tutoriel vidéo mysql

Table des matières

  • Première partie : Fonction de décalage horaire timestampdiff, datediff, timediff
    • Fonction de décalage horaire : timestampdiff
    • 2, Fonction de décalage horaire : datediff
    • 3. Fonction de décalage horaire : timediff
    • 4. Autres fonctions de date
    • Autres fonctions de date
  • Chapitre Deux parties de date, horodatage, conversion de chaîne
    • Autres

Partie 1 : Heure fonctions de différence timestampdiff, datediff , timediff

1. Fonction de décalage horaire : timestampdiff

Syntaxe : timestampdiff(interval, datetime1,datetime2)
Résultat : Renvoie le décalage horaire de (temps 2 - temps 1), l'unité de résultat est donnée par le paramètre intervalle.

intervalle
frac_second millisecondes (les versions inférieures ne le prennent pas en charge, utilisez la seconde, puis divisez par 1000)
seconde seconde
minute minute
heure heure
jour jour
semaine semaine
mois mois
trimestre trimestre
année année

Remarque : l'enregistrement et le calcul en millisecondes ne sont pris en charge qu'après MySQL 5.6. Si c'est avant Pour la version, il est préférable de créer un champ int pour stocker les millisecondes dans les champs autres que le type datetime dans la base de données, puis d'effectuer vous-même le calcul de conversion. # Tous les formats

SELECT TIMESTAMPDIFF(FRAC_SECOND,'2012-10-01','2013-01-13'); # 暂不支持SELECT TIMESTAMPDIFF(SECOND,'2012-10-01','2013-01-13'); # 8985600SELECT TIMESTAMPDIFF(MINUTE,'2012-10-01','2013-01-13'); # 149760SELECT TIMESTAMPDIFF(HOUR,'2012-10-01','2013-01-13'); # 2496SELECT TIMESTAMPDIFF(DAY,'2012-10-01','2013-01-13'); # 104SELECT TIMESTAMPDIFF(WEEK,'2012-10-01','2013-01-13'); # 14SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13'); # 3SELECT TIMESTAMPDIFF(QUARTER,'2012-10-01','2013-01-13'); # 1SELECT TIMESTAMPDIFF(YEAR,'2012-10-01','2013-01-13'); # 0

2. Fonction de décalage horaire : datediff

Syntaxe : SELECT DATEDIFF(date1, date2)
Résultat : Le différence en jours entre la date 1 et la date 2

SLECT DATEDIFF('2013-01-13','2012-10-01'); # 104

3. Fonction de décalage horaire : timediff

Syntaxe : timediff(time1,time2)
Résultat : Renvoie la différence entre time1-time2

SELECT TIMEDIFF('2018-05-21 14:51:43','2018-05-19 12:54:43');#49:57:00

Remarque : Les deux paramètres de cette méthode doivent être au format date

4. Autre date fonctions

  • La fonction now() renvoie l'année, le mois, le jour, l'heure, la minute et la seconde de l'heure actuelle
  • La fonction curdate() renvoie l'année, informations sur le mois et le jour
  • la fonction curtime() renvoie les informations sur l'heure, la minute et la seconde de l'heure actuelle
  • Pour formater une date contenant l'année, le mois, le jour, l'heure, la minute et seconde dans un mois, un jour et une date, vous pouvez utiliser la fonction DATE (heure)

Autres fonctions de date

SELECT NOW(); # 2018-05-21 14:41:00SELECT CURDATE(); # 2018-05-21SELECT CURTIME(); # 14:41:38SELECT DATE(NOW()); # 2018-05-21SELECT SYSDATE(); # 2018-05-21 14:47:11SELECT CURRENT_TIME(); # 14:51:30SELECT CURRENT_TIMESTAMP; # 2018-05-21 14:51:37SELECT CURRENT_TIMESTAMP(); # 2018-05-21 14:51:43

Remarque : maintenant () est similaire à sysdate(), sauf que now() est obtenu au début de l'exécution, tandis que sysdate() peut être obtenu lorsque la fonction est exécutée de manière dynamique.

Partie 2 Date, horodatage, conversion de chaîne

#时间日期转字符串  相当与Oracle中的to_char函数select date_format(now(), '%Y-%m-%d'); #结果:2017-02-27#时间转时间戳select unix_timestamp(now()); #结果:1488160428#字符串转时间select str_to_date('2017-02-27', '%Y-%m-%d %H'); #结果:2017-02-27 00:00:00select str_to_date('2017-10-16 15:30:28','%Y-%m-%d %H:%i:%s'); #结果 2017-10-16 15:30:28#注意 年是大写‘Y’,小时也必须是大写‘H’    (如果其他为大写,则得到结果为null)#字符串转时间戳select unix_timestamp('2017-02-27'); #结果:1488124800#时间戳转时间select from_unixtime(1488160428); #结果:2017-02-27 09:53:48#时间戳转字符串select from_unixtime(1488160428,'%Y-%m-%d %T'); #结果:2017-02-27 09:53:48

 SELECT DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s'); -- 获取当天零点select curdate();                       --获取当前日期select last_day(curdate());                    --获取当月最后一天。select DATE_ADD(curdate(),interval -day(curdate())+1 day);   --获取本月第一天select date_add(curdate()-day(curdate())+1,interval 1 month); -- 获取下个月的第一天select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual; --获取当前月的天数

Autres

SELECT DAY('2021-2-17') -- 当前月的第几天(17)SELECT MONTH('2021-2-17') -- 当前为几月(2)

Autres recommandations d'apprentissage gratuites associées : tutoriel mysql(vidéo)

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer