Maison > Article > base de données > Parlons des fonctions liées aux dates couramment utilisées dans MySQL
Recommandations d'apprentissage gratuites : tutoriel vidéo mysql
Table des matières
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
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!