首页 > 解决方案 > ORACLE - 查询以获取非特定日期格式的记录

问题描述

我有一个包含值的表:

-----------------------
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
-----------------------

我需要获取那些不是格式的 ID 1974-05-29 00:00:00

即,我的输出应该是:

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

请帮忙。

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

标签: oracleoracle11g

解决方案


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

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'会被认为是正确的。


推荐阅读