Re: [MySQL ] 撈日期的問題

看板Database (資料庫)作者 (沉默是金)時間16年前 (2009/05/22 11:28), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串7/8 (看更多)
※ 引述《KC73 (肯先生)》之銘言: : ※ 引述《TonyQ (沉默是金)》之銘言: : : 如果是 datetime 欄位 , 可以直接用 hour 來作判斷比較直覺. : : 像你要 18點間上課的資料 , 就可以寫 : : SELECT * FROM `table_date` WHERE hour( date ) =18 : 建議用 explain 看一下,即使把 Date 設定了 index,應該還會有一個 : full table scan,資料一多,就很慢: : mysql> explain SELECT * FROM t WHERE HOUR(date)='6'\G 再次感謝這篇文章 , 我之前一直都沒注意到有這類工具可以用. :p 本來一直以為 mysql 跟 ms sql 行為應該是不會相去太遠 , 早上用 m$ sql server 本來是想測了一下 isnull . 因為很多地方我懶得寫 (xxx is null or xxx < yyy) , 所以是用 isNull(xxx,預設值) < yyy 的方式寫. (至於為什麼會有 null , 那就不另外贅述了 , 有時候就是會有.XD ) 不過我測完發現還是 index scan , 就換測之前這篇的 sample . 好像 m$ sql server 是沒有這問題的 , 只有 index scan 沒有 table scan, 我不確定是不是我被提示訊息騙了就是. XD 我手上的資料是顯示如下 http://tonylovejava.googlepages.com/indexscan.JPG
( table/db name 我遮掉了 , 那應該不重要 , 該表資料筆數3xxx.XD) substring 的狀況我也測了 (先convert 後 substring ), 跟上圖顯示的資料是幾乎一模一樣的 . 所以這是我誤解了什麼 , 有不一樣的環境條件 , 還是 mysql 在這點行為真的是跟 m$ sql 是有出入的 ?.? -- ps. 測試環境是 sql server 2008 , 2005前幾天被我uninstall了 , 沒得測... -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.78.140 ※ 編輯: TonyQ 來自: 221.169.78.140 (05/22 11:32) ※ 編輯: TonyQ 來自: 221.169.78.140 (05/22 11:33)

05/22 22:11, , 1F
印象中.沒記錯的話SQL2005以後的版本 對default function
05/22 22:11, 1F

05/22 22:23, , 2F
可做index查詢 另外substring的切法也有差
05/22 22:23, 2F
文章代碼(AID): #1A5XlbS7 (Database)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 7 之 8 篇):
文章代碼(AID): #1A5XlbS7 (Database)