IT虾米网

mysql的内建日期处理函数详解

qq123 2018年12月07日 数据库 891 0

下面的表格列出了MySQL 中最重要的内建日期函数:

函数 描述
NOW() 返回当前的日期和时间
CURDATE() 返回当前的日期
CURTIME() 返回当前的时间
DATE() 提取日期或日期/时间表达式的日期部分
EXTRACT() 返回日期/时间按的单独部分
DATE_ADD() 给日期添加指定的时间间隔
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的天数
DATE_FORMAT() 用不同的格式显示日期/时间

 

 

 

 

 

 

 

 

 

时间差函数(TIMESTAMPDIFF、DATEDIFF)

需要用MySQL计算时间差,使用TIMESTAMPDIFF、DATEDIFF,记录一下实验结果

--0 
select datediff(now(), now()); 
 
--2 
select datediff('2015-04-22 23:59:00', '2015-04-20 00:00:00'); 
 
--2 
select datediff('2015-04-22 00:00:00', '2015-04-20 23:59:00'); 
 
--1 
select TIMESTAMPDIFF(DAY, '2015-04-20 23:59:00', '2015-04-22 00:00:00'); 
 
--2 
select TIMESTAMPDIFF(DAY, '2015-04-20 00:00:00', '2015-04-22 00:00:00'); 
 
--2 
select TIMESTAMPDIFF(DAY, '2015-04-20 00:00:00', '2015-04-22 12:00:00'); 
 
--2 
select TIMESTAMPDIFF(DAY, '2015-04-20 00:00:00', '2015-04-22 23:59:00'); 
 
--71 
select TIMESTAMPDIFF(HOUR, '2015-04-20 00:00:00', '2015-04-22 23:00:00'); 
 
--4260 
select TIMESTAMPDIFF(MINUTE, '2015-04-20 00:00:00', '2015-04-22 23:00:00');

MySQL 取得两个时间相差的分钟数

-- 取得相隔秒数 
SELECT UNIX_TIMESTAMP('2012-06-09 00:10:11')-UNIX_TIMESTAMP('2012-06-09 00:09:12') 
 
-- 取得相隔分钟数 
SELECT round((UNIX_TIMESTAMP('2012-06-09 00:10:11')-UNIX_TIMESTAMP('2012-06-09 00:09:12'))/60)

日期转换计算函数(date_add、day、date_format、str_to_date)

-- 用日期与字符串转换,计算当月第一天、下月第一天 
select curdate() as '当前日期',  
DATE_FORMAT(curdate(), '%Y-%m') as '当前月份',  
str_to_date(concat(DATE_FORMAT(curdate(), '%Y-%m'), '-01'), '%Y-%m-%d') as '当前月的第一天',  
date_add(str_to_date(concat(DATE_FORMAT(curdate(), '%Y-%m'), '-01'), '%Y-%m-%d'), interval 1 month) as '下月的第一天'; 
 
-- 当前月的最后一天 
select last_day(curdate()); 
 
-- 下月第一天 
select date_add(last_day(curdate()), interval 1 day); 
 
-- 当天为当月的第几天 
select day(curdate()); 
 
-- 当月第一天 
select date_add(curdate(), interval 1-(day(curdate())) day);

 

发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

MySQL InnoDB独立表空间模式的优点和缺点介绍详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。