码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 日期时间相关函数

时间:2018-11-12 14:56:39      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:str   nbsp   低版本   日期格   bar   格式化   字段   toolbar   数据   

第一部分:时间差函数  timestampdiff、datediff、timediff

 

一、时间差函数:timestampdiff

  语法:timestampdiff(interval, datetime1,datetime2)

  结果:返回(时间2-时间1)的时间差,结果单位由interval参数给出。

  • frac_second 毫秒(低版本不支持,用second,再除于1000)
  • second 秒
  • minute 分钟
  • hour 小时
  • day 天
  • week 周
  • month 月
  • quarter 季度
  • year 年

  注意:MySQL 5.6之后才支持毫秒的记录和计算,如果是之前的版本,最好是在数据库除datetime类型之外的字段,再建立用于存储毫秒的int字段,然后自己进行转换计算。# 所有格式

SELECT TIMESTAMPDIFF(FRAC_SECOND,2012-10-01,2013-01-13); # 暂不支持
SELECT TIMESTAMPDIFF(SECOND,2012-10-01,2013-01-13); # 8985600 SELECT TIMESTAMPDIFF(MINUTE,2012-10-01,2013-01-13); # 149760 SELECT TIMESTAMPDIFF(HOUR,2012-10-01,2013-01-13); # 2496 SELECT TIMESTAMPDIFF(DAY,2012-10-01,2013-01-13); # 104 SELECT TIMESTAMPDIFF(WEEK,2012-10-01,2013-01-13); # 14 SELECT TIMESTAMPDIFF(MONTH,2012-10-01,2013-01-13); # 3 SELECT TIMESTAMPDIFF(QUARTER,2012-10-01,2013-01-13); # 1 SELECT TIMESTAMPDIFF(YEAR,2012-10-01,2013-01-13); # 0

二、时间差函数:datediff

   语法:传入两个日期参数,比较DAY天数,第一个参数减去第二个参数的天数值。

SELECT DATEDIFF(‘2013-01-13‘,‘2012-10-01‘); # 104

 

三、时间差函数:timediff

  语法:timediff(time1,time2)

  结果:返回两个时间相减得到的差值,time1-time2

SELECT TIMEDIFF(‘2018-05-21 14:51:43‘,‘2018-05-19 12:54:43‘);
# 49:57:00
注意:该方法两个参数必须为日期格式

 

四、其他日期函数

  • now()函数返回的是当前时间的年月日时分秒
  • curdate()函数返回的是年月日信息
  • curtime()函数返回的是当前时间的时分秒信息
  • 对一个包含年月日时分秒日期格式化成年月日日期,可以使用DATE(time)函数
技术分享图片
# 其他日期函数
SELECT NOW(); # 2018-05-21 14:41:00
SELECT CURDATE(); # 2018-05-21
SELECT CURTIME(); # 14:41:38
SELECT DATE(NOW()); # 2018-05-21
SELECT SYSDATE(); # 2018-05-21 14:47:11
SELECT CURRENT_TIME(); # 14:51:30
SELECT CURRENT_TIMESTAMP; # 2018-05-21 14:51:37
SELECT CURRENT_TIMESTAMP(); # 2018-05-21 14:51:43
技术分享图片

注意:now()与sysdate()类似,只不过now()在执行开始时就获取,而sysdate()可以在函数执行时动态获取。

 

第二部分 日期、时间戳、字符串互相转换

#时间日期转字符串  相当与Oracle中的to_char函数
select date_format(now(), %Y-%m-%d); 
#结果:2017-02-27

#时间转时间戳
select unix_timestamp(now()); 
#结果:1488160428

#字符串转时间
select str_to_date(2017-02-27, %Y-%m-%d %H); 
#结果:2017-02-27 00:00:00
select str_to_date(2017-10-16 15:30:28,%Y-%m-%d %H:%i:%s); 
#结果 2017-10-16 15:30:28
#注意 年是大写‘Y’,小时也必须是大写‘H’    (如果其他为大写,则得到结果为null)

#字符串转时间戳
select unix_timestamp(2017-02-27); 
#结果:1488124800

#时间戳转时间
select from_unixtime(1488160428); 
#结果:2017-02-27 09:53:48

#时间戳转字符串
select from_unixtime(1488160428,%Y-%m-%d %T); 
#结果:2017-02-27 09:53:48

 

 

 

MySQL 日期时间相关函数

标签:str   nbsp   低版本   日期格   bar   格式化   字段   toolbar   数据   

原文地址:https://www.cnblogs.com/luxd/p/9946028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!