• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MySQL日期相关函数

武飞扬头像
兵bing
帮助1

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 ;

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgebiff
系列文章
更多 icon
同类精品
更多 icon
继续加载