ORACLE-查询以获取非特定日期格式的记录

时间:2018-07-03 10:38:19

标签: oracle oracle11g

我有一个值表:

-----------------------
ID  Date
-----------------------
1   2015-06-26
2   1974-05-29 00:00:00
3   2012-01-30 00:00:00
4   2011-12-03 00:00:00
5   1994-06-12
6   2016-04-01
-----------------------

我需要获取格式为1974-05-29 00:00:00那些ID。

即我的输出应为:

-----------------------
ID  Date
-----------------------
1   2015-06-26
5   1994-06-12
6   2016-04-01
-----------------------

请帮助。

更新日期列的数据类型:VARCHAR2(128 CHAR)

2 个答案:

答案 0 :(得分:1)

尝试一下

Select * from my_table where instr(date, '00:00:00') <= 0

or 

Select * from my_table where length(date) = 10

注意:我不确定为什么您要以字符串格式维护日期。最好尝试转换为日期格式(如果可能)

答案 1 :(得分:1)

您只需要检查格式,就可以使用:

select *
from yourTable
where not regexp_like("Date", '\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}')

请注意,这不会检查内容,因此'2011-12-03 99:99:99'之类的字符串将被视为正确。