MySQL 常用函数(3) 日期和时间函数总结

3.日期和时间函数

官方日期和时间函数文档地址

3.1 curdate 和 current_date:返回当前系统的日期值

CURDATE() 和 CURRENT_DATE() 函数的作用相同,将当前日期按照“YYYY-MM-DD”或“YYYYMMDD”格式的值返回,具体格式根据函数用在字符串或数字语境中而定,返回 DATE 类型。
举例: SELECT CURDATE(),CURRENT_DATE(),CURRENT_DATE()+1;
curdate

3.2 curtime 和 current_time:获取系统当前时间

CURTIME() 和 CURRENT_TIME() 函数的作用相同,将当前时间以“HH:MM:SS”或“HHMMSS与数字相加的和”格式返回,具体格式根据函数用在字符串或数字语境中而定,返回 TIME 类型。
举例: SELECT CURTIME(),CURRENT_TIME(),CURRENT_TIME()+1;
curtime

3.3 now 和 sysdate: 获取当前时间日期

NOW() 和 SYSDATE() 函数的作用相同,都是返回当前日期和时间值,格式为“YYYY-MM-DD HH:MM:SS”或“YYYYMMDDHHMMSS”,具体格式根据函数用在字符串或数字语境中而定,返回datetime 类型。
举例: SELECT NOW(),SYSDATE(),NOW()+1;
now

3.4 unix_timestamp:获取UNIX时间戳

UNIX_TIMESTAMP(DATE) 若无参数调用,返回一个无符号整数类型的 UNIX 时间戳('1970-01-01 00:00:00’GMT之后的秒数)。
举例: SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP(NOW()),UNIX_TIMESTAMP('1970-01-01 00:00:00');
unix_timestamp

3.5 from_unixtime: 时间戳转日期

FROM_UNIXTIME(unixtimestamp[,FORMAT]) 函数把 UNIX 时间戳转换为普通格式的日期时间值,与 UNIX_TIMESTAMP () 函数互为反函数。
有2个参数:
unix_timestamp:时间戳(秒)
format:要转化的格式 例如“”%Y-%m-%d“” 这样格式化之后的时间就是2017-11-30
举例: SELECT FROM_UNIXTIME(1607984822),FROM_UNIXTIME(0,'%Y-%m-%d %H:%i:%s');
from_unixtime

3.6 month:获取指定日期的月份

MONTH(DATE) 函数返回指定 DATE 对应的月份,范围为 1~12。
举例: SELECT MONTH('2011-07-01'),MONTH(NOW());
month

3.7 monthname:获取指定日期月份的英文名称

MONTHNAME(DATE) 函数返回日期 DATE 对应月份的英文全名。
举例:SELECT MONTHNAME('2011-07-01'),MONTHNAME(NOW());
monthname

3.8 dayname:获取指定日期的星期名称

DAYNAME(DATE) 函数返回 DATE 对应的工作日英文名称,例如 Sunday、Monday等。
举例: SELECT NOW(),DAYNAME(NOW());
dayname

3.9 dayofweek:获取日期对应的周索引

DAYOFWEEK(d) 函数返回 d 对应的一周中的索引(位置)。1 表示周日,2 表示周一,……,7 表示周六。这些索引值对应于ODBC标准。
举例: SELECT NOW(),DAYOFWEEK(NOW());
dayofweek

3.10 week:获取指定日期是一年中的第几周

WEEK(DATE[,MODE]) 函数计算日期 DATE 是一年中的第几周。WEEK(DATE,MODE)函数允许指定星期是否起始于周日或周一,以及返回值的范围是否为 0~52 或 1~53。
WEEK函数接受两个参数:
• DATE 是要获取周数的日期。
• MODE 是一个可选参数,用于确定周数计算的逻辑。它允许指定本周是从星期一还是星期日开始,返回的周数应在 0 到 52 之间或 0 到 53 之间。
如果忽略 MODE 参数,默认情况下 WEEK 函数将使用 default_week_format 系统变量的值。
要获取 default_week_format 变量的当前值,请使用 SHOW VARIABLES 语句如下:SHOW VARIABLES LIKE 'default_week_format';
default_week_format

在我们的服务器中, default_week_format 的默认值为 0
举例: SELECT NOW(),WEEK(NOW());
week

3.11 dayofyear:获取指定日期在一年中的位置

DAYOFYEAR(d) 函数返回 d 是一年中的第几天,范围为 1~366。
举例: SELECT NOW(),DAYOFYEAR(NOW()),DAYOFYEAR('2020-12-31');
dayofyear

3.12 dayofmonth:获取指定日期在一个月的位置

DAYOFMONTH(d) 函数返回 d 是一个月中的第几天,范围为 1~31。
举例: SELECT NOW(),DAYOFMONTH(NOW()),DAYOFMONTH('2020-12-31');
dayofmonth

3.13 year:获取年份

YEAR() 函数可以从指定日期值中来获取年份值。
举例: SELECT NOW(),YEAR(NOW()),YEAR('2020-12-31');
year

3.14 time_to_sec:将时间转换为秒值

TIME_TO_SEC(TIME) 函数返回将参数 TIME 转换为秒数的时间值,转换公式为“小时×3600+ 分钟 ×60+ 秒”。
举例: SELECT TIME_TO_SEC('09:00:06'),NOW(),TIME_TO_SEC(NOW());
time_to_sec

3.15 sec_to_time:将秒值转换为时间格式

SEC_TO_TIME(seconds) 函数返回将参数 seconds 转换为小时、分钟和秒数的时间值。
举例: SELECT SEC_TO_TIME(32406),SEC_TO_TIME(32608);
sec_to_time

3.16 date_add和adddate:向日期添加指定时间间隔

DATE_ADD(DATE,INTERVAL expr TYPE)
date:参数是合法的日期表达式。expr 参数是希望添加的时间间隔。
举例: SELECT DATE_ADD('2020-12-15', INTERVAL 16 DAY),ADDDATE('2020-12-15 09:03:28', INTERVAL 32 SECOND);
date_add

3.17 date_sub和subdate:日期减法运算

DATE_SUB(DATE,INTERVAL expr TYPE)
date:参数是合法的⽇期表达式。expr 参数是您希望添加的时间间隔。
举例: SELECT DATE_SUB('2020-12-31', INTERVAL 16 DAY),SUBDATE('2020-12-15 09:04:00',INTERVAL 32 SECOND);
subdate

3.18 addtime:时间加法运算

ADDTIME(TIME,expr) 函数用于执行时间的加法运算。添加 expr 到 TIME 并返回结果。其中:time 是一个时间或日期时间表达式,expr 是一个时间表达式。
举例: SELECT ADDTIME('2020-12-15 09:03:28','00:00:32'),ADDTIME('09:03:28','00:00:32');
addtime

3.19 subtime:时间减法运算

SUBTIME(TIME,expr) 函数用于执行时间的减法运算。
函数返回 time。expr 表示的值和格式 TIME 相同。time 是一个时间或日期时间表达式, expr 是一个时间。
举例:SELECT SUBTIME('2020-12-15 09:04:00','00:00:32'),SUBTIME('09:04:00','00:00:32');
subtime

3.20 datediff:获取两个日期的时间间隔

DATEDIFF(date1,date2) 返回时间 date1 减时间 date2 的天数。date1 和 date2 为日期或 DATE-AND-TIME 表达式。计算时只用到这些值的日期部分。
举例:SELECT DATEDIFF('2020-12-15','2020-12-31'),DATEDIFF(NOW(),'2020-12-14');
datediff

3.21 date_format:格式化指定的日期

DATE_FORMAT(date,format) 函数是根据 FORMAT 指定的格式显示 DATE 值。
DATE_FORMAT() 函数接受两个参数:
date:是要格式化的有效日期值
format:是由预定义的说明符组成的格式字符
串,每个说明符前面都有一个百分比字符(%)。
举例:SELECT DATE_FORMAT('2020-12-15','%Y%m%d'),DATE_FORMAT(NOW(),'%Y%m%d%H%i%s');
date_format

3.22 weekday:获取指定日期在一周内的索引位置

WEEKDAY(DATE) 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。比 DAYOFWEEK(DATE)得到的数字小2.
举例:SELECT NOW(),WEEKDAY(NOW());
weekday

举例2: SELECT NOW(),DAYOFWEEK(NOW());
dayofweek

3.23 timestampdiff: 返回指定INTERVAL格式的时间差

举例: SELECT TIMESTAMPDIFF(SECOND,'2020-12-15 23:00:00','2020-12-16 00:00:01');
timestampdiff

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值