2016-09-28 52 views
-1

我很少有銀泰表中的數據2012/05/01 09:41 2012/05/05 09:47 2012/05/07 08:30 2012/05/09 08:45 2012/05/10 09:41,如何檢索表中的varchar數據例如:'2012/05/01 09:42'

因爲我要像大於2012/05/01 09:30查詢會像

數據

從表中選擇其中銀泰銀泰> 2012/05/01 09:30其獲取只有2012/05/01 09:30未銀泰的數據類型是VARCHAR2

+0

你沒有帶說你問的語言和系統。 –

+0

@ BrianTompsett-湯萊恩oracle數據庫和jsp –

+1

如果Intime的數據類型是varchar2,那麼首先您的where子句將不會使用單引號進行計算。其次,我可能會發現結果集沒有時間。檢查庫侖是否有你指定的數據。 – XING

回答

0

您需要將轉換列到date然後做你的比較。你需要使用這種方式:

SELECT TO_DATE (Intime, 'YYYY/MM/DD HH:MI') D_ATE 
FROM TABLE  
WHERE to_date(Intime ,'YYYY/MM/DD HH:MI') > to_date('2012/05/01 09:30','YYYY/MM/DD HH:MI'); 

演示:

with dt_tbl (Intime) as (select '2012/05/01 09:30' from dual 
         UNION ALL 
         select '2012/05/01 09:42' from dual 
         UNION ALL 
         select '2012/05/01 09:29' from dual 
         UNION ALL 
         select '2012/05/01 09:35' from dual) 
SELECT TO_DATE (Intime, 'YYYY/MM/DD HH:MI') D_ATE 
FROM dt_tbl  
WHERE to_date(Intime ,'YYYY/MM/DD HH:MI') > to_date('2012/05/01 09:30','YYYY/MM/DD HH:MI'); 
+0

Intime數據類型爲Varchar2 .. –

+0

To_date函數將varchar轉換爲日期。閱讀更多http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm – XING