差MySQL求两日期间的时间差异(mysql求日期)
MySQL求两日期间的时间差异是比较常见的操作,特别是日期格式使用DATETIME类型,可以比较准确的求出两日期之间的天、小时、分钟或者秒钟。
首先,假设两个日期:date1表示第一个日期,date2表示第二个日期,date1
以下就是MySQL求两日期间的时间差异的通用语句:
““
SELECT date2 – date1 AS diff_sec
,SEC_TO_TIME(date2 – date1) AS diff_time
,TIMESTAMPDIFF(Second, date1, date2) AS diff_sec2
,TIMESTAMPDIFF(Minute, date1, date2) AS diff_min2
,TIMESTAMPDIFF(Hour, date1, date2) AS diff_hour2
,TIMESTAMPDIFF(Day, date1, date2) AS diff_day2
,CONCAT(TIMESTAMPDIFF(Day, date1, date2), ‘days’,
MOD(TIMESTAMPDIFF(Hour, date1, date2), 24), ‘hours’) AS diff_dayh2
,TIMEDIFF(date2, date1) AS diff_days3
FROM dual;
““
上述查询语句可以从date1和date2这两列中求出5种时间差异,秒,分,小时,天,以及天和小时的混合格式。
TIMEDIFF函数能够返回HH:MM:SS 形式的差异,可以设定两个参数时间之差。最后使用CONCAT函数,可以把日期和小时Slab装换成对应格式的字符串。
另有的情况比如细分两个日期的年月日时分秒,可以使用以下语法:
““
SELECT
DATE_FORMAT(date1, “%Y”) AS date1_year
,DATE_FORMAT(date1, “%m”) AS date1_month
,DATE_FORMAT(date1, “%d”) AS date1_day
,DATE_FORMAT(date1, “%T”) AS date1_time
,DATE_FORMAT(date2, “%Y”) AS date2_year
,DATE_FORMAT(date2, “%m”) AS date2_month
,DATE_FORMAT(date2, “%d”) AS date2_day
,DATE_FORMAT(date2, “%T”) AS date2_time
FROM dual;
““
总的来说,使用MySQL的日期函数可以比较准确的求取两日期之间的时间差异,可以根据自己的需求来选择合适的函数。