2014-07-10 214 views
1
SELECT checkIn,checkOut 
FROM TIMESTAMP 
WHERE UId='2' 
    AND checkIn >= CONVERT(datetime, '2014-07-10') 
    AND checkIn <= CONVERT(datetime,'2014-07-23 23:59:59') 

此查詢在'2014-07-10'附近產生語法錯誤)AND checkIn < = CONVERT(datetime,'2014-07-23 23:59:59')。基本上我只是想在這兩個日期之間得到checkIn的值。我在查詢中錯過了什麼嗎?SQL:查詢語法錯誤

+5

如果根據您的標籤,您正在使用[tag:mysql],那麼您沒有正確使用它。這裏是mysql的[CAST和CONVERT]文檔(http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast)。您似乎正在使用SQL Server的'CONVERT'語法。 –

+0

另外,要小心,因爲如果你使用的是MySQL 5.6,你可能會由於小數秒而在查詢中丟失一秒。 – jynus

+1

不確定這是jynus是指什麼,但使用半開放間隔會使這個閱讀更清晰 - 'checkIn> ='2014-07-10'AND checkIn <'2014-07-24'' 。 –

回答

0

CONVERT的語法是CONVERT('2014-07-23 23:59:59' using utf8),用於轉換字符串的字符集,而不是執行轉換。

如果簽入一個日期時間值,你可以用

SELECT checkIn,checkOut 
FROM TIMESTAMP 
WHERE UId='2' 
    AND checkIn BETWEEN '2014-07-10' AND '2014-07-23 23:59:59' 

UPDATE:看來閱讀,它可以用於鑄造的手冊,但參數的順序是在您的示例不正確。

+0

哦,謝謝你!它現在有效。現在我可以進入我的下一個問題。 – user3799541