代码之家  ›  专栏  ›  技术社区  ›  Mike

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

  •  0
  • Mike  · 技术社区  · 6 年前

    我有一张有值的表:

    -----------------------
    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  Date
    -----------------------
    1   2015-06-26
    5   1994-06-12
    6   2016-04-01
    -----------------------
    

    请帮忙。

    更新 : 日期列的数据类型 :varchar2(128个字符)

    2 回复  |  直到 6 年前
        1
  •  1
  •   Gaj    6 年前

    试试这个

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

    注意:我不知道为什么要将日期保持为字符串格式。最好尝试转换为日期格式(如果可能)

        2
  •  1
  •   Aleksej    6 年前

    您只需检查格式,即可使用:

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