[SQL ] 請問 where date 條件怎麼下比較好呢?

看板Database作者 (野火)時間13年前 (2012/12/04 10:57), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
Oracle 查詢 A01 在 2012/12/4 當天是否有登錄 顧客 C1213 的 123 分店資料? 黃色為已知條件 以下為登錄記錄 ( 2012/12/4 有 1 筆資料 ) ----------------------------------------------------------------------- varchar2 date varchar2 number varchar2 varchar2 單號 登錄日期時間 客戶編號 營業點 客服人員 處理人員 ACC0001 2012/12/4 上午 09:31:31 C1213 123 A01 ----------------------------------------------------------------------- 原本是這樣下的, 但其實不應該用 LIKE, 可是我用其他寫法都撈不到這筆資料 SELECT * FROM call_table WHERE customer_id = 'C1213' AND shop_key = 123 AND sb_call_time LIKE TO_DATE('2012/12/4', 'yyyy/mm/dd') AND (hd_emp_id = 'A01' OR mt_emp_id = 'A01') ---------------------------------------------------------------------- 下列是先將欄位 Type 轉成 date 來比對, 可是這段撈不到資料 SELECT * FROM call_table WHERE customer_id = 'C1213' AND shop_key = 123 AND TO_DATE(sb_call_time, 'yyyy/mm/dd') = TO_DATE('2012/12/4', 'yyyy/mm/dd') AND ( hd_emp_id = 'A01' OR mt_emp_id = 'A01' ) 請問這段查詢要怎麼修改比較好呢? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.59.164.121

12/04 11:39, , 1F
AND substr(sb_call_time,1,'2012/12/4')>0 試試看行不行?
12/04 11:39, 1F
錯誤訊息是 invalid relational operator 可能的原因是 date 與 char 型別不同 目前此段日期查詢的處理方法是 1. 在前端寫一段日期格式轉換函式(可省略) 將 2012/12/4 轉為 2012/12/04 2. where條件將欄位 date 型別轉為 char型別再比對 AND TO_CHAR(sb_call_time, 'yyyy/mm/dd') = '2012/12/04' 剛剛試作出來了 謝謝ClubT提供靈感 xd ※ 編輯: blReader 來自: 210.59.164.121 (12/04 12:01)
文章代碼(AID): #1GlMQ5uZ (Database)