簡體   English   中英

Oracle SQL的To_char無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM