2017-06-01 87 views
3

假設我們有一個關係R(A,B),其中 A包含int值,B包含時間戳。SQL,用於時間戳減法的轉換整數

我們必須計算:(time in B in minutes) - (int to minutes)

實施例: (125, "2017-06-01 16:23:00")

16:23:00 = 983 min 
125 = 125min 

983 - 125 = 858min

A的元素表示分鐘,我的問題是 值轉換的整數>59hh:mm,由於MAKETIME(hh, mm, ss)只在工作範圍0到59.

+2

標記您正在使用的dbms。 (MAKETIME是產品特定的。) – jarlh

+0

對不起,您究竟是什麼意思是由標記和 – normalUser221

+0

固定的未命名的馬。 (帶有文本「mysql」的藍色框,在「sql」和「sql-timestamp」標記旁邊。) – jarlh

回答

2

根本沒有必要在幾分鐘內轉換時間戳列的時間。

只是做

SELECT B - INTERVAL A MINUTE; 

如果你真的只是想的時間從做

SELECT TIME(B) - INTERVAL A MINUTE; 

減去要讓日期部分被改動:

SELECT CONCAT(DATE(B), ' ', TIME(B) - INTERVAL A MINUTE); 

當你絕對需要以下幾分鐘:

SELECT HOUR(TIME(B) - INTERVAL A MINUTE) * 60 + MINUTE(TIME(B) - INTERVAL A MINUTE);