2012-09-03 27 views
0

我想具體的日期後,選擇所有列,但訣竅是「日期」一欄爲varcharMYSQL選擇行特定日期(行類型爲varchar)

我有這個

SELECT * FROM `users` WHERE STR_TO_DATE(birthday,'%m/%d/%Y') > '10-10-2000' 

作爲一個例子,我想選擇生日在10/10/2000之後的所有用戶,但這只是返回所有行。

有人知道什麼是錯的?

+0

只是題外話:沒有任何理由日期沒有時間戳或任何語義上更正確的類型比VARCHAR? –

回答

2

您正在比較數據和字符串。我會用CAST

WHERE STR_TO_DATE(birthday,'%m/%d/%Y') > CAST('2000-10-10' AS date) 

另外請注意,我改變了第二的格式以匹配在MySQL中期望什麼。您也可以在這裏使用STR_TO_DATE。

+0

我想你是唯一一位閱讀OP的問題的人。 –

0

我認爲mysql的日期通常是yyyy-mm-dd,這意味着你應該在2000-10-10結束時更改字符串。

試試這個,讓我知道如果這有效。