SELECT jour
FROM reservations
WHERE id_user = 57 AND SUBSTR(jour,10) = '2014_08_14' ORDER BY jour
返回任何...SUBSTR返回任何記錄(MySQL的)
我有一個記錄,該codition相匹配的數據庫:
SELECT jour
FROM reservations
WHERE id_user = 57 AND SUBSTR(jour,10) = '2014_08_14' ORDER BY jour
返回任何...SUBSTR返回任何記錄(MySQL的)
我有一個記錄,該codition相匹配的數據庫:
更換SUBSTR(jour,10)
與SUBSTR(jour,1,10)
。
假設:jour
是varchar
類型列。如果您將日期存儲爲varchar
,則不要那麼做!
說明:我的解決方案使用SUBSTR
函數的(str,pos,len)
過載。參數2和3分別是起始位置和子串的長度。
substr
的第一個參數是位置從啓動。因此,SUBSTR(jour,10)
返回_AM
,您將得到一個空的結果集。相反,你應該用樹的說法變種:
SELECT jour
FROM reservations
WHERE id_user = 57 AND
SUBSTR(jour, 1, 10) = '2014_08_14' -- Here
ORDER BY jour
爲了使您的查詢更具可讀性,並保證這樣的錯誤不再重演,你可以使用下面的變體:
SELECT jour
FROM reservations
WHERE id_user = 57 AND
SUBSTR(jour FROM 1 FOR 10) = '2014_08_14' -- Here
ORDER BY jour
您還可以使用LEFT(str,len)功能或SUBSTR(str,pos,len)
試試這個:
SELECT jour
FROM reservations
WHERE id_user = 57 AND LEFT(jour, 10) = '2014_08_14'
ORDER BY jour
OR
SELECT jour
FROM reservations
WHERE id_user = 57 AND SUBSTR(jour, 1, 10) = '2014_08_14'
ORDER BY jour
如果選擇SUBSTR(怨婦,10)從保留你得到完全相同: '2014_08_14'?我相信你需要做SUBSTR(jour,1,10)。
'jour' col是什麼類型?它是否是一個字符串coloum或日期,日期時間,時間戳col? – bish
是'jour'類型的字符串還是別的? –
如果您有這樣的問題,只需在您的選擇中放入您調用的函數(即'substr')以驗證您是否執行了您想要的操作。 – evilive