[英]To_char for Oracle SQL not working
我有以下查詢,即使有,該查詢也不會檢索數據:
select *
from INTERFACE_RUN
where TO_CHAR(INTERFACE_RUN.START_TIME, 'dd-mon-yy') = '04-MAY-10';
start_time字段是時間戳字段。 因此,我使用to_char對其進行了轉換,並與用戶傳遞的04-MAY-10值進行了比較。 但是它沒有獲取任何數據。 請幫忙。 提前致謝
to_char()
注意模式的大小寫。 因此,您正在生成`04-may-10',這是不一樣的。
因此,請嘗試以下操作:
where TO_CHAR(INTERFACE_RUN.START_TIME, 'DD-MON-YY') = '04-MAY-10';
也就是說,我更喜歡:
where trunc(INTERFACE_RUN.START_TIME) = date '2010-05-04'
要么:
where INTERFACE_RUN.START_TIME >= date '2010-05-04' AND
INTERFACE_RUN.START_TIME < (date '2010-05-04') + 1
為什么? 有兩個原因。 首先,該列是一個日期,因此我更喜歡日期比較。 其次,我更喜歡ANSI / ISO標准日期格式。 第二個版本也可以方便地利用START_TIME
列上的索引。
Oracle將日期轉換為小寫,從而生成“ 04-may-10”
嘗試使用“ DD-MON-YY” (大寫)
select TO_CHAR(sysdate, 'dd-mon-yy') from dual
union all
select TO_CHAR(sysdate, 'dd-MON-yy') from dual;
TO_CHAR(S
---------
13-jun-16
13-JUN-16
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.