计算天数之间的时差

时间:2017-07-07 02:50:32

标签: mysql time

我有4列:开始日期,结束日期,开始时间和结束时间。我需要找到差异,即结束时间 - 开始时间。但是,需要考虑开始日期和结束日期。示例:如果我的开始日期= 7/6/2017,开始时间= 1:00,结束日期-7/7/2017结束时间= 2:00则为25小时..

我需要在过去一周内的所有开始和结束日期执行此操作。有人可以帮我弄这个吗。这真的很有帮助。

1 个答案:

答案 0 :(得分:0)

使用UNIX_TIMESTAMP()STR_TO_DATE()将您的日期和时间转换为Unix时间戳,以秒为单位。例如:UNIX_TIMESTAMP(STR_TO_DATE("7/6/2017 1:00", '%d/%m/%Y %H:%i'))

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date

然后在两个时间戳上执行基本减法以获得以秒为单位的时间间隔。

另外,作为一般推荐,最好将日期转换为正确的MySQL Datetime列类型(更好的SQL支持),或者作为unix int时间戳(更快的差异),或者作为包含GMT的ISO格式的字符串数据(更好的人类可读性,可怕的查找)。