2017-07-07 220 views
-1

我有4列:開始日期,結束日期,開始時間和結束時間。我需要找到差異即結束時間開始時間。但是需要考慮開始日期和結束日期。例如:如果我的開始日期= 7/6/2017,開始時間= 1:00,結束日期是7/7/2017結束時間= 2:00,那麼這個時間是25小時..計算日期之間的時間差

我需要做這適用於過去1周內的所有開始和結束日期。有人可以幫我弄這個嗎。這將是非常有幫助的。

回答

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 timestamp(更快的差異),或者作爲ISO格式的字符串,包括GMT數據(更好的人類可讀性,可怕的查找)。

+0

這些是4個不同的列,日期列是日期格式,時間列是時間數據類型。它不是包含日期和時間的同一列。 – user3800888

+0

您可以使用'CONCAT()'創建一個單一的字符串。 – Fabien

+0

你能舉個例子嗎?所以你說我連接起始數據和開始時間,然後對結束日期和結束時間執行相同的操作,然後使用timestampdiff? – user3800888

相關問題