如何在表格中检索varchar数据:' 2012/05/01 09:42'

时间:2016-09-28 06:06:51

标签: sql oracle record varchar

我在Intime表中的数据很少,如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,

由于我希望大于2012/05/01 09:30的数据查询将像

从Intime> 2012/05/01 09:30的表中选择Intime仅提取2012/05/01而不是09:30 Intime的数据类型是varchar2

1 个答案:

答案 0 :(得分:0)

您需要将varchar2列转换为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');