差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的日期函数可以比较准确的求取两日期之间的时间差异,可以根据自己的需求来选择合适的函数。


数据运维技术 » 差MySQL求两日期间的时间差异(mysql求日期)