MySQL日期相关函数

MySQL中,字符串的年月日时分秒按照 yyyy-mm-dd HH:mm:ss 这种格式排列,那这个字符串就是日期
1、 curdate() :获取年月日

select curdate(); -- 2023-02-04

2、 curtime() : 获取时分秒

 select curtime(); -- 14:17:02

3、 now()、sysdate()、current_timestamp, current_timestamp()
now()和sysdate()都是获取当前时间,now()获取当前sql执行时的快照时间,一段SQL中不论调用了几次now(),返回的结果都跟第一次调用的一样如:

 select now(),sysdate(),sleep(3),now(),sysdate();

在这里插入图片描述
localtime,localtime(),localtimestamp,localtimestamp(),current_timestamp,current_timestamp()和now()是结果一样,他们功能相同,如下图

select now(),sysdate(),localtime,localtime(),localtimestamp,localtimestamp(),current_timestamp,current_timestamp(),sleep(3),now(),sysdate(),localtime,localtime(),localtimestamp,localtimestamp(),current_timestamp,current_timestamp();

在这里插入图片描述

4、 str_to_date():字符串转日期

select str_to_date('2020.02.29 15:35:24','%Y.%m.%d %H:%i:%s');

在这里插入图片描述

5、 date_format():日期转字符串

  select date_format(now(),'%Y.%m.%d %H:%i:%s');

在这里插入图片描述

6、 date_add():日期加一定天数或小时数,单位可以指定

 select date_add('2023-02-04',interval 1 day);

在这里插入图片描述

select date_add('2023-02-04',interval 1 hour);

在这里插入图片描述

7、 date_sub():日期减一定天数或小时数,单位可以指定,用法同date_add()
8、 datediff():两个日期之间相差的天数

  select datediff('2023-02-04','2023-02-03');

在这里插入图片描述

select datediff(‘2023-02-04 :00:00:00’,‘2023-02-03 23:59:59’);

在这里插入图片描述

9、 period_diff():返回两个日期相差的月数,两个参数的格式为YYYYMM或者YYMM

 SELECT PERIOD_DIFF(201803, 201703); 

在这里插入图片描述

SELECT PERIOD_DIFF(1703, 1612);

在这里插入图片描述

10、 quarter():返回一个日期所在季度,返回值有4个值1,2,3,4

  select quarter('2020-01-01');

在这里插入图片描述

11、year():从日期中截取年

select year('2023-01-01'); -- 2023
select year(now()); -- 2023

12、month():从日期中截取月

select month('2023-01-01') -- 1

13、day():从日期中截取日

select day('2023-01-31') -- 31

14、to_days():计算指定日期距离公元1年的天数

select to_days('2020-07-24'),to_days('2020-07-23'),to_days('2020-07-24')- to_days('2020-07-23');

在这里插入图片描述

15、YEARWEEK():从日期中返回年和当前日期所在周数

select yearweek('2023-01-01 15:00:00'); -- 202301
select yearweek(sysdate()); -- 202305

16、makedate():拼接日期,第一个参数是年,第二个参数是一年中的第几天,类型都是数字

select makedate(2020,33);  

在这里插入图片描述
17、maketime():拼接时间三个参数分别是时分秒,都是数字

select maketime(20,33,56);

在这里插入图片描述

MySQL中的时间单位
microsecond
second
minute
hour
day
week
month
quarter
year
second_microsecond
minute_microsecond
minute_second
hour_microsecond
hour_second
hour_minute
day_microsecond
day_second
day_minute
day_hour
year_month
带有下划线的都是大的时间单位在前,小的时间单位在后,比如 :
interval ‘1 1’ year_month 代表1年1个月

select '2020-07-01','2020-07-01'-interval '1 1' year_month;

在这里插入图片描述

interval ‘1 2 3 4’ day_second 代表1天2小时3分4秒

select '2020-07-01','2020-07-01'-interval '1 2 3 4' day_second ;

在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值