如何检索 table 中的 varchar 数据 ex: '2012/05/01 09:42'
How to retrieve varchar data in table ex: '2012/05/01 09:42'
我在 Intime 的数据很少 table 像 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 查询将像
select Intime 来自 table 其中 Intime>2012/05/01 09:30 它只获取 2012/05/01 而不是 09:30 Intime 的数据类型是varchar2
您需要将 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');
我在 Intime 的数据很少 table 像 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 查询将像
select Intime 来自 table 其中 Intime>2012/05/01 09:30 它只获取 2012/05/01 而不是 09:30 Intime 的数据类型是varchar2
您需要将 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');