MySQL的日期函数
MySQL的日期函数
1、获取当前日期和时间
curdate()
:获取当前日期,不包括时分秒。
curtime()
:获取当前时间,不包含日期。
now() 或 sysdate()
:获取当前时间和日期。建议使用sysdate()
,因为在oracle中也可以使用
2、字符串和日期的转换
str_to_date()
:字符串到时间的转换
date_format()
:时间到字符串的转换
常用的日期格式是%Y-%m-%d %H:%i:%s
。
示例:
select str_to_date('2008-4-21 5:3:28','%Y-%m-%d %H:%i:%s');
select date_format(now(),'%Y-%m-%d %H:%i:%s');
拓展
在oracle中对应的函数:
to_date()
:字符串到时间的转换
to_char()
:时间到字符串的转换
常用的日期格式有 yyyymmddhh24miss
和yyyy-mm-dd hh24:mi:ss
。
如果时间带AM/PM,那么日期格式可以用 yyyy-mm-dd hh:mi:ssam
。
示例:
SELECT
to_char(sysdate, 'yyyymmddhh24miss'),
to_date('2017-06-01 9:25:40', 'yyyy-mm-dd hh24:mi:ss'),
to_date('2017-06-01 9:25:40 下午', 'yyyy-mm-dd hh:mi:ss am')
FROM
dual;
3、日期和时间的计算
+ interval
:对日期时间类型加1天、1秒、1月等。
- interval
:对日期时间类型减1天、1秒、1月等。
示例:
SELECT
NOW(),
NOW() + INTERVAL 1 YEAR,
NOW() + INTERVAL 1 MONTH,
NOW() - INTERVAL 1 DAY,
NOW() - INTERVAL 1 SECOND
FROM
DUAL ;
date_add() 或 adddate()
:和直接用interval结果一样。
date_sub()
:用于减一个interval。
示例:
--在当前时间的基础上分别增加1秒和减少1小时
SELECT NOW(), DATE_ADD(NOW(),INTERVAL 1 SECOND),DATE_SUB(NOW(),INTERVAL 1 HOUR);
datediff()
:计算两个日期之间间隔的天数。
示例:
SELECT DATEDIFF(NOW(),'2022-11-04');
拓展
在oracle数据库中对时间进行计算:
+ N
:对date类型加1表示加1天,那么1小时可以用1/24表示,同理1秒=1/86400。
numtodsinterval()
:同样表示时间间隔,1秒可以表示为numtodsinterval(1, ’second’)。
add_months()
:增加N月。
示例:
SELECT
sysdate "当前时间",
sysdate + 1 "增加一天",
sysdate + numtodsinterval(1, 'hour') "增加1小时",
add_months(sysdate, 3) "增加3个月"
FROM
dual;