2013-09-23 78 views
0

林坐在一個小問題..主持人日期時間

在我的數據庫,我有一個包含2個日期時間的表..

TABLE1已經turn_time爲datetime價值0000-00- 00 23時59分59秒

TABLE2具有last_move作爲日期時間值2013年9月23日14時20分十九秒

我想在SQL中計算turn_time + last_move < NOW()。

但結果即時得到回看起來是這樣的: 40261846333938.000000

我會得到怎樣一個簡單的選擇回到當前行的,如果turn_time + last_move < NOW()?

我的SQL:

SELECT * FROM active_games 
     INNER JOIN games 
     ON active_games.fk_games_id = games.games_id 
     INNER JOIN product 
     ON active_games.fk_product = product.product_id 
     INNER JOIN users 
     ON active_games.fk_user_id_turn = users.user_id 
     INNER JOIN user_profile 
     ON users.user_id = user_profile.fk_user_id 
     WHERE turn_time + last_move < NOW() 

感謝您的時間。

+0

是否涉及SQL Server? –

+0

如果添加兩個DateTime,您期望得到什麼樣的結果? – Magnus

回答

1

你可以試試這個WHERE條款改爲:

WHERE UNIX_TIMESTAMP(turn_time) + UNIX_TIMESTAMP(last_move) < UNIX_TIMESTAMP(NOW()) 

NOW()文檔說以下內容:

返回當前日期和時間爲「YYYY-MM-DD HH值:MM:SS'或YYYYMMDDHHMMSS.uuuuuu格式,具體取決於函數是在字符串還是數字上下文中使用。

由於NOW()是在數值上下文中使用您的WHERE子句中,它返回的數值(在YYYYMMDDHHMMSS.uuuuuu格式),並試圖比較它們的DateTime turn_time + last_move。將所有內容轉換爲Unix時間戳應允許比較正常工作。

希望這會有所幫助!

+0

你救了我的一天!有用 ;) –

相關問題