MySQL中的日期时间函数总结

一、

	1、NOW() :返回当前日期时间
	2、CURDATE() :返回当前的日期
	3、CURTIME() :返回当前的时间
	

SELECT NOW(),CURDATE(),CURTIME()

在这里插入图片描述

二、

2.1、

4、DATE(日期表达式) :只取前面的日期部分

例:

SELECT DATE("2022-11-29 15:56:10")或
SELECT DATE("2022/11/29 15:56:10")

结果均为: 2022-11-29

SELECT DATE(NOW())  :结果为现在时间的日期部分。

2.2、

5、TIME(日期表达式) :只取后面的时间部分

SELECT TIME("2022-11-29 15:56:10")
结果为:15:56:10

三、

6、将日期转为指定的格式的字符串:date_format(date, format)
注:date为合法的日期表达式,format为格式。

 select date_format(now(),'%Y-%m-%d %H:%i:%S');
    结果:2022-11-29 16:39:13
select date_format(now(),'%Y-%m-%d');
    结果:2022-11-29
select  
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'),
DATE_FORMAT(NOW(),'%m-%d-%Y'),
DATE_FORMAT(NOW(),'%d %b %y'),
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果为
 Nov 04 2008 11:45 PM
 11-04-2008
 04 Nov 08
 04 Nov 2008 11:45:34:243 

MySQL日期格式化(format)取值范围。
在这里插入图片描述

7、字符串转日期 :str_to_date(str,format)
注:str为日期格式的字符串,format格式必须和str的格式相同,否则返回空

select str_to_date('2022-11-29', '%Y-%m-%d %H:%i:%S');
      结果: 2022-11-29 00:00:00 
select str_to_date('20221129', '%Y%m%d');
      结果: 2022-11-29 

8、日期转时间戳:unix_timestamp(date)

 select unix_timestamp(now())
  结果:1669711707

9、时间戳转日期:from_unixtime(time-stamp);

		select  from_unixtime(1669711707)
		  结果:2022-11-29 16:48:27

10、时间戳转字符串:from_unixtime(time-stamp,format);

select from_unixtime(1669711707,'%Y、%m、%d %H:%i:%S'); 
 结果:2022、11、29 16:48:27

四、

11、EXTRACT(unit FROM date) 函数用于返回日期/时间的单独部分,比如只返回年、月、日、小时、分钟等等。
date 参数是合法的日期表达式。unit 参数是要取的部分:

	SELECT extract( YEAR_MONTH  FROM  NOW() )
	结果为:202211

unit 参数可以是下列的值:

Unit 值含义
MICROSECOND微妙
SECOND
MINUTE分钟
HOUR小时
DAY
WEEK这一年中第几个星期(查询结果加一为正确星期数)
MONTH月份
QUARTER第几季度
YEAR年份
YEAR_MONTH取年份和月份
SECOND_MICROSECOND只取秒数和微妙数
MINUTE_MICROSECOND只取秒数和微妙数
MINUTE_SECOND只取分钟、秒数和微妙数
HOUR_MICROSECOND取小时、分钟、秒数和微妙数
HOUR_SECOND取小时、分钟、秒数
HOUR_MINUTE取小时、分钟
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR

12、DATE_ADD()或ADDDATE(): 向日期添加指定的时间间隔。

用法:DATE_ADD(date,INTERVAL number type)

date是日期表达式,INTERVAL是固定单词, number是希望添加的时间间隔(数字),type 参数参照11例的unit取值表

DATE_ADD()和ADDDATE()返回对date操作的结果;date的格式可以是“15-12-31”,可以是“15-12-31 23:59:59”,也可以是“2015-12-31 23:59:59”,如果参数date是date格式,则返回date格式结果,如果参数date是datetime格式,则返回datetime格式结果

//此时间点再加两个月
SELECT DATE_ADD('2022-11-30 13:32:37',INTERVAL 2 MONTH) 
结果为; 2023-01-30 13:32:37

13、DATE_SUB()或SUBDATE(): 从日期减去指定的时间间隔。(与12类似,一个减、一个加)

用法:DATE_SUB(date,INTERVAL number type)

date是日期表达式,INTERVAL是固定单词, number 是希望添加的时间间隔(数字),type 参数参照11例的unit取值表

//在此时间点减两天
SELECT DATE_SUB('2022-11-30 13:32:37',INTERVAL 2 DAY ) 
结果为; 2022-11-28 13:32:37

14、DATEDIFF() 函数返回两个日期之间的天数。

用法:DATEDIFF(date1,date2)
date1 和 date2 参数是合法的日期或日期/时间表达式。

注:只有值的日期部分参与计算。

SELECT DATEDIFF('2022-11-30','2022-11-28')
结果为: 2
SELECT DATEDIFF('2022-11-30','2021-11-30')
结果为:365
SELECT DATEDIFF('2022-11-25','2022-11-30')
结果为:-5

五、

15、DAYOFWEEK(date):查此日期在一周中的第几天(结果减一为正确数值)

16、WEEKDAY(date):查此日期在一周中的第几天(结果加一为正确数值)

17、DAYOFMONTH(date):查此日期在一月中是第几天

18、DAYOFMONTH(date):查此日期在一年中是第几天

19、MONTH(date):查此日期是一年中的第几月份

20、DAYNAME(date):查此日期在一周中的第几天(正常,英文显示,如Friday)

21、MONTHNAME(date):查此日期是一年中的第几月份(正常,英文显示,如November)

22、QUARTER(date):查此日期是一年中的第几季度(12月为第4季度,1月为第一季度)

23、WEEK(date,index):查此日期是一年中第几个星期(可能会少一)

24、YEAR(date):要注意的是:如果年份只有两位数,那么自动补全的机制是以默认时间1970.01.01为界限的,>= 70 的补全 19

25、HOUR(time):返回该date或者time的hour值,值范围(0-23)

26、MINUTE(time):返回该time的minute值,值范围(0-59)

27、SECOND(time)返回该time的minute值,值范围(0-59)

28、PERIOD_ADD(month,add):该函数返回对month月份做增减的操作结果,month的格式为yyMM或者yyyyMM,返回的都是yyyyMM格式的结果,add可以传负值

SELECT PERIOD_ADD('202211',2)或SELECT PERIOD_ADD(202211,2)
结果为 202301

29、PERIOD_DIFF(monthStart,monthEnd):该函数返回monthStart – monthEnd的间隔月数

七、

30、TO_DAYS(date):返回西元0年至日期date是总共多少天

31、FROM_DAYS(date):返回西元0年至今多少天的DATE值

32、UNIX_TIMESTAMP(date):获取时间戳

八、

33、SEC_TO_TIME(seconds):把秒数转化成时间

34、TIME_TO_SEC(time):把时间转化成秒数

35、ADDTIME(time,times):把times加到time上

36、CONVERT_TZ(date,from_tz ,to_tz ):转换时区

SELECT CONVERT_TZ('2020-11-30 6:00:00', '+00:00', '+08:00') 
结果为:2020-11-30 14:00:00

37、LAST_DAY(date):获取date当月最后一天的日期

38、MAKEDATE(year ,dayofyear ):根据参数(年份,第多少天)获取日期

39、MAKETIME(hour ,minute ,second ):根据参数(时,分,秒)获取时间

40、YEARWEEK(date):获取日期的年和周

41、WEEKOFYEAR(date):获取当日是当年的第几周

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值