三秦使者 发表于 2024-5-26 07:58:03

mysql日期函数用法大全

一、 返回当前日期

1、CURRENT_DATE()、CURRENT_DATE和CURDATE()用法相同:返回当前日期
2、CURRENT_TIME()、CURRENT_TIME和CURTIME()用法相同:返回当前时间
3、CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP、LOCALTIMESTAMP()、LOCALTIMESTAMP、LOCALTIME()、LOCALTIME和NOW()用法相同:返回当前日期和时间
4、SYSDATE():返回函数执行时的时间
注意:NOW()取自mysql的变量”TIMESTAMP”,而这个变量在语句开始执行的时候就设定好了,所以在整个语句执行过程当中都不会变化,而SYSDATE()取的是动态的实时时间。
示例:SELECT NOW(),SYSDATE(),SLEEP(3),NOW(),SYSDATE()
输出结果:2022-10-15 16:18:18,2022-10-15 16:18:18,0,2022-10-15 16:18:18,2022-10-15 16:18:21

二、 提取日期部分

1、DATE() 函数用于提取日期或日期时间的日期部分。
示例:SELECT DATE('2022-10-15 16:45:30');
输出结果: 2022-10-15
2、DAY() 函数返回月份中的天数,是DAYOFMONTH()的同义词。
示例:SELECT DAY('2022-10-15');
输出结果:15
3、DAYNAME() 函数返回给定日期对应的周几的名称。
示例:SELECT DAYNAME('2022-10-15');
输出结果:Saturday
4、DAYOFMONTH() 函数返回一个日期的月份中的天数(0-31)。
示例:SELECT DAYOFMONTH('2022-10-15');
输出结果:15
5、DAYOFWEEK() 函数返回参数的星期索引。
示例:SELECT DAYOFWEEK('2022-10-15');
输出结果:7
6、DAYOFYEAR() 函数返回一年中的天数(1-366)。
示例:SELECT DAYOFYEAR('2022-10-15');
输出结果:288
7、EXTRACT() 函数用于从日期中提取指定部分内容。
示例:SELECT EXTRACT(YEAR FROM '2022-10-15');
输出结果:2022
8、FROM_DAYS() 函数将天数转换为日期。
示例:SELECT FROM_DAYS(8765);
输出结果:1998-05-19
9、LAST_DAY
函数返回参数所在月份的最后一天。
示例:SELECT LAST_DAY('2022-10-15');
输出结果:2022-10-31
10、MONTH() 函数返回日期的月份。
示例:SELECT MONTH('2022-10-15');
输出结果:10
11、MONTHNAME() 函数返回月份的名称。
示例:SELECT MONTHNAME('2022-10-15');
输出结果:October
12、QUARTER() 函数返回日期的季度。
示例:SELECT QUARTER('2022-10-15');
输出结果:4
13、WEEK() 函数返回给定日期的周数。
示例:SELECT WEEK('2022-10-15');
输出结果:41
14、WEEKDAY() 函数返回星期索引。
示例:SELECT WEEKDAY('2022-10-15');
输出结果:5
15、WEEKOFYEAR() 函数返回日期所在年份的周数。
示例:SELECT WEEKOFYEAR('2022-10-15');
输出结果:41
16、YEAR() 函数返回年份。
示例:SELECT YEAR('2022-10-15');
输出结果:2022
17、YEARWEEK() 函数返回年份和周数。
示例:SELECT YEARWEEK('2022-10-15');
输出结果:202241
18、TIME() 函数用于提取表达式中的时间部分。
示例:SELECT TIME('2022-10-15 16:45:30');
输出结果:16:45:30
19、HOUR() 函数用于提取小时数。
示例:SELECT HOUR('16:45:30');
输出结果:16
20、MICROSECOND() 函数返回参数中的微秒数。
示例:SELECT MICROSECOND('16:45:30.123456');
输出结果:123456
21、MINUTE() 函数返回参数中的分钟数。
示例:SELECT MINUTE('16:45:30');
输出结果:45
22、SECOND() 函数返回参数中的秒数。
示例:SELECT SECOND('16:45:30');
输出结果:30

三、 增加和减去时间

1、ADDDATE():向日期值增加时间间隔
用法:ADDDATE(date, INTERVAL expr unit)
示例:SELECT ADDDATE('2022-01-01', INTERVAL 7 DAY);
-- 输出结果:'2022-01-08'
2、ADDTIME():加上指定的时间
用法:ADDTIME(time, TIME expr)
示例:SELECT ADDTIME('10:15:30', '02:30:00');
-- 输出结果:'12:45:30'
3、DATE_ADD():向日期值增加时间间隔
用法:DATE_ADD(date, INTERVAL expr unit)
示例:SELECT DATE_ADD('2022-01-01', INTERVAL 1 MONTH);
-- 输出结果:'2022-02-01'
4、DATE_SUB():从日期中减去时间间隔
用法:DATE_SUB(date, INTERVAL expr unit)
示例:SELECT DATE_SUB('2022-01-01', INTERVAL 2 WEEK);
-- 输出结果:'2021-12-18'
5、DATEDIFF():计算两个日期之间的差值
用法:DATEDIFF(end_date, start_date)
示例:SELECT DATEDIFF('2022-01-10', '2022-01-01');
-- 输出结果:9
6、SUBDATE():当使用三个参数调用时,是DATE_SUB()的同义词
用法:SUBDATE(date, INTERVAL expr unit)
示例:SELECT SUBDATE('2022-01-01', INTERVAL 1 YEAR);
-- 输出结果:'2021-01-01'
7、SUBTIME():减去时间
用法:SUBTIME(time, TIME expr)
示例:SELECT SUBTIME('12:00:00', '00:30:00');
-- 输出结果:'11:30:00'
8、TIMEDIFF():计算时间差
用法:TIMEDIFF(time1, time2)
示例:SELECT TIMEDIFF('14:30:00', '12:15:00');
-- 输出结果:'02:15:00'
9、TIMESTAMPADD():给日期时间添加指定单位的时间
用法:TIMESTAMPADD(unit, interval, datetime_expr)
示例:SELECT TIMESTAMPADD(MONTH, 3, '2022-01-01');
-- 输出结果:'2022-04-01'
10、TIMESTAMPDIFF():返回两个日期时间表达式的时间差,使用指定的单位
用法:TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
示例:SELECT TIMESTAMPDIFF(DAY, '2022-01-01', '2022-01-10');
-- 输出结果:9
11、PERIOD_ADD():将N个月增加到格式为YYMM或YYYYMM的时间P中。返回格式为YYYYMM的值。 如果P或N为空,则此函数返回NULL。
用法:PERIOD_ADD(P, N)
示例:SELECT PERIOD_ADD(202201, 3);
-- 输出结果:202204
12、PERIOD_DIFF():返回两个时间(格式为YYMM或YYYYMM)之间的月数。
用法:PERIOD_DIFF(P1, P2)
示例:SELECT PERIOD_DIFF(202203, 202201);
-- 输出结果:2

四、格式化日期和时间

1、DATE_FORMAT():按指定格式格式化日期
用法:DATE_FORMAT(date, format)
示例:SELECT DATE_FORMAT('2022-10-31', '%Y/%m/%d')
输出结果:2022/10/31
2、FROM_UNIXTIME():将Unix时间戳格式化为日期
用法:FROM_UNIXTIME(unix_timestamp, format)
示例:SELECT FROM_UNIXTIME(1635657600, '%Y-%m-%d %H:%i:%s')
输出结果:2021-10-31 00:00:00
3、GET_FORMAT():返回日期格式字符串
用法:GET_FORMAT(format_type, locale)
示例:SELECT GET_FORMAT(DATE, 'fr_FR')
输出结果:%d.%m.%Y
4、TIME_FORMAT():格式化时间
用法:TIME_FORMAT(time, format)
示例:SELECT TIME_FORMAT('16:45:30', '%h:%i %p')
输出结果:04:45 PM
5、MAKEDATE():根据年份和一年中的天数创建日期
用法:MAKEDATE(year, day_of_year)
示例:SELECT MAKEDATE(2022, 300)
输出结果:2022-10-27
6、MAKETIME():根据小时、分钟和秒创建时间
用法:MAKETIME(hour, minute, second)
示例:SELECT MAKETIME(12, 30, 0)
输出结果:12:30:00
7、TO_DAYS():将日期参数转换为从公元0年开始的天数
用法:TO_DAYS(date)
示例:SELECT TO_DAYS('2022-10-31')
输出结果:737986
8、TO_SECONDS():将日期或日期时间参数转换为从公元0年开始的秒数
用法:TO_SECONDS(datetime)
示例:SELECT TO_SECONDS('2021-10-31 00:00:00')
输出结果:63768716800
9、SEC_TO_TIME():将秒数转换为 'hh:mm:ss' 格式
用法:SEC_TO_TIME(seconds)
示例:SELECT SEC_TO_TIME(3660)
输出结果:01:01:00
10、TIME_TO_SEC():将参数转换为秒数
用法:TIME_TO_SEC(time)
示例:SELECT TIME_TO_SEC('02:30:45')
输出结果:9045
11、UNIX_TIMESTAMP():返回Unix时间戳
用法:UNIX_TIMESTAMP(), UNIX_TIMESTAMP(datetime)
示例:SELECT UNIX_TIMESTAMP()
输出结果:1640611200
12、TIMESTAMP():带有一个参数时,返回日期或日期时间表达式;带有两个参数时,返回参数的总和
用法:TIMESTAMP(expr), TIMESTAMP(expr1, expr2)
示例:SELECT TIMESTAMP('2022-10-31'), SELECT TIMESTAMP('2022-10-31', '12:30:00')
输出结果:2022-10-31 00:00:00, 2022-10-31 12:30:00

五、时区转换

1、CONVERT_TZ(): 将一个时区转换为另一个时区
该函数用于将给定的时间值从一个时区转换为另一个时区。它接受三个参数:要转换的时间值、原始时区和目标时区。返回值是在目标时区下的对应时间值。
用法:SELECT CONVERT_TZ('2022-03-15 10:30:00', 'America/New_York', 'Asia/Tokyo');
输出结果:2022-03-15 23:30:00
2、UTC_DATE(): 返回当前的UTC日期
该函数返回当前系统时间的日期部分,使用协调世界时 (UTC) 表示。它不需要任何参数。
用法:SELECT UTC_DATE();
输出结果:2022-07-12
3、UTC_TIME(): 返回当前的UTC时间
该函数返回当前系统时间的时间部分,使用协调世界时 (UTC) 表示。它不需要任何参数。
用法:SELECT UTC_TIME();
输出结果:17:25:30
4、UTC_TIMESTAMP(): 返回当前的UTC日期和时间
该函数返回当前系统时间的日期和时间部分,使用协调世界时 (UTC) 表示。它不需要任何参数。
用法:SELECT UTC_TIMESTAMP();
输出结果:2022-07-12 17:25:30
到此这篇关于mysql日期函数用法大全的文章就介绍到这了,更多相关mysql日期函数用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/database/32071647p.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: mysql日期函数用法大全