2015-11-05 74 views
1

我有一個查詢從兩個表中提取結果。日期時間存儲在一個表格中,分鐘(-300)的時間偏移量位於第二個表格中。是否有可能檢索已經偏移的本地時間,還是需要使用PHP進行計算?與MySQL的偏移時間

SELECT 
    t1.eventName, 
    t1.eventTime, 
    t2.offsetTime 
WHERE id = 2 

事件時間被存儲在以下格式:2015年11月5日2時04分01秒 和偏移時間:-360

如果我去的MySQL的路線,我需要先將它們轉換爲毫秒?

回答

1

是的,可以在MySQL表達式中進行計算。

如果t2.offsetTime是表示分鐘數的整數數據類型,並且t1.eventTime是DATETIME,TIMESTAMP或DATE的數據類型,則可以使用表達式將偏移量(以分鐘爲單位)添加到日期時間。

例如:

t1.eventTime + INTERVAL t2.offsetTime MINUTE 

只需使用表達式在SELECT列表,例如:

SELECT t1.eventName 
    , t1.eventTime + INTERVAL t2.offsetTime MINUTE AS offsetEventTime 
    , t1.eventTime 
    , t2.offsetTime 
    FROM t1 
    JOIN t2 
    ON ... 

如果你喜歡在表達式中使用函數,MySQL提供的DATE_ADD執行相同功能...

DATE_ADD(t1.eventTime, INTERVAL t2.offsetTime MINUTE) 

(在地方的MINUTE,您可以使用DAYHOURMONTHSECOND,等。)

2

還有a load of different functions你可以用來實現這個像SUBTIME & ADDTIME

在你的情況可能是這樣的*:

SELECT ADDTIME(t1.eventTime, t2.offsetTime) as newTime 

*您可能需要使用其他功能-300轉換成格式像-00:05