看板 Database 關於我們 聯絡資訊
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
ClubT:AND substr(sb_call_time,1,'2012/12/4')>0 試試看行不行? 12/04 11:39
錯誤訊息是 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)