[VS2008] VS2008 跟 MySQL 5.1 都很瞎

話說我今天要測一個 MySQL 5.1 的 SQL 語法,主要要測 Group By ,但怎樣測都怪怪的,所以拿 VS2008 IDE 環境下的伺服器總管測,經過一路刪減測試程式碼,刪到這樣我才找到問題:
SELECT 時間 FROM 表格 WHERE 時間>=’2010/3/1′
 
VS2008 會很自動的作 SQL 語法檢查,依據 ANSI SQL 標準,日期應該記為 3/1/2010 ,所以上面的語法就會自動變為:
SELECT 時間 FROM 表格 WHERE 時間>=’3/1/2010′
 
結果造成我撈不到任何資料,為啥呢?
直接就字串相比,’3/1/2010′ 大於任何 2 開頭的字串,也就是說除非到公元三千年,否則我絕對撈不到資料…
 
換一套不會亂改 SQL 的查詢產生器去測,果然,送 ‘2010/3/1’ 或 ‘2010-3-1’ ,MySQL 都能正確回傳 3/1 以後的資料,但是送 ‘3/1/2010’ 或 ‘3-1-2010’ 都沒資料。
 
所以 MySQL 很瞎,把日期當字串處理…
所以 VS2008 很瞎,沒辦法把 SQL 語法自動檢查功能關掉…
 
廣告
Categories: 資料庫 | 發表留言

文章分頁導航

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在WordPress.com寫網誌.

%d 位部落客按了讚: