【问题标题】:What would be the SQL Select statement for mixed dates in one column?一列中混合日期的 SQL Select 语句是什么?
【发布时间】:2009-10-01 21:23:37
【问题描述】:

我有一个客户将旧数据存储在 Oracle 数据库中。此类数据在数据库的一列中包含混合的 DATE 值(该字段是 VARCHAR(32))。 例如,它们存储“2009 年 9 月 30 日”,有时存储“1254431689”(即纪元时间的时间戳)。

我没有选择将数据分成多列(所以我必须处理它)。

问题是 - 如何在 SQL Select 语句中动态转换数据?

【问题讨论】:

  • 既然不能拆分列,那能不能把不需要的形式的数据转换成另一种形式?
  • 为什么不清理数据?编写一个快速脚本(即使在 SQL 中...)遍历每一行,检测它是否全是数字(因此是纪元),或者做相反的事情,并用可接受的标准替换该值。

标签: sql oracle plsql data-integrity


【解决方案1】:
case when instr(thecol, '-')=0 then "convert one way"
     else "convert the other way"
end

等等,可能还有更多when 部分。可悲,真的,也许值得封装到一个用户定义的函数中,至少让它看不见;-)。

【讨论】:

    猜你喜欢
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多