mysql常用时间函数与类型转换

一、用到的函数有:

1.时间格式化函数 

DATE_FORMAT(date,format)  

2.时间加减函数
DATE_ADD(date,INTERVAL expr unit)
DATE_SUB(date,INTERVAL expr unit) 

3.两个时间求差函数 
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

4.时间戳转换时间函数
FROM_UNIXTIME(unix_timestamp,format)

5.字符串转时间函数
UNIX_TIMESTAMP()

二、常用的时间SQL

1.今天

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); #年--SELECT DATE_FORMAT(NOW(),'%T');#时分秒
SELECT DATE_FORMAT(NOW(),'%a %H-%i-%s');#年--日 星期缩写 时分秒
SELECT DATE_FORMAT(NOW(),'%m %h-%i-%s');#月 时(01-12)分秒

可参见   https://www.w3school.com.cn/sql/func_date_format.asp

 

2.昨天

#昨天
SELECT DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL -1 DAY);

3.上个月

#上个月
SELECT DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL -1 MONTH);

4.两个时间相减

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)  expr2 - expr1,unit 可为 年 、月、日、时分秒 
#两个日期相减
#TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)  expr2 - expr1,unit 可为 年 、月、日、时分秒 
SELECT TIMESTAMPDIFF(day,'2020-06-02','2020-06-08');
SELECT TIMESTAMPDIFF(MONTH,'2020-02-12','2020-06-08');
SELECT TIMESTAMPDIFF(YEAR,'2020-02-12','2021-06-08');

#两个时间相减,时分秒
SELECT TIMESTAMPDIFF(HOUR,'2020-06-08 03:11:22','2020-06-08 06:21:32');
SELECT TIMESTAMPDIFF(MINUTE,'2020-06-08 03:11:22','2020-06-08 06:21:32');
SELECT TIMESTAMPDIFF(SECOND,'2020-06-08 03:11:22','2020-06-08 06:21:32');

5.一个时间减去一个值

#时间减去一个值
SELECT DATE_ADD('2020-05-22 15:28:39',INTERVAL -3 HOUR);
SELECT DATE_ADD('2020-05-22 15:28:39',INTERVAL -30 MINUTE);
SELECT DATE_ADD('2020-05-22 15:28:39',INTERVAL -30 SECOND);

6.转换时间戳

SELECT FROM_UNIXTIME(1592361071,'%Y-%m-%d %H-%i-%s');#时间戳(秒)转时间
SELECT UNIX_TIMESTAMP('2020-06-17 10:16:25');#字符串转时间戳 

7.字符串转时间

#字符串转时间
SELECT STR_TO_DATE('2019-06-24','%Y-%m-%d');
原文地址:https://www.cnblogs.com/xiaoyujade/p/13151193.html