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():时间到字符串的转换

常用的日期格式有 yyyymmddhh24missyyyy-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;

 

posted @ 2023-02-07 16:34  danielzzz  阅读(297)  评论(0编辑  收藏  举报