我有4列:开始日期,结束日期,开始时间和结束时间。我需要找到差异即结束时间开始时间。但是需要考虑开始日期和结束日期。例如:如果我的开始日期= 7/6/2017,开始时间= 1:00,结束日期是7/7/2017结束时间= 2:00,那么这个时间是25小时..计算日期之间的时间差
我需要做这适用于过去1周内的所有开始和结束日期。有人可以帮我弄这个吗。这将是非常有帮助的。
我有4列:开始日期,结束日期,开始时间和结束时间。我需要找到差异即结束时间开始时间。但是需要考虑开始日期和结束日期。例如:如果我的开始日期= 7/6/2017,开始时间= 1:00,结束日期是7/7/2017结束时间= 2:00,那么这个时间是25小时..计算日期之间的时间差
我需要做这适用于过去1周内的所有开始和结束日期。有人可以帮我弄这个吗。这将是非常有帮助的。
使用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 timestamp(更快的差异),或者作为ISO格式的字符串,包括GMT数据(更好的人类可读性,可怕的查找)。
这些是4个不同的列,日期列是日期格式,时间列是时间数据类型。它不是包含日期和时间的同一列。 – user3800888
您可以使用'CONCAT()'创建一个单一的字符串。 – Fabien
你能举个例子吗?所以你说我连接起始数据和开始时间,然后对结束日期和结束时间执行相同的操作,然后使用timestampdiff? – user3800888