【问题标题】:Oracle sql loader date format issueOracle sql loader 日期格式问题
【发布时间】:2011-03-08 16:47:47
【问题描述】:

我是 sql loader 的新手,我遇到了日期格式的问题。

这里是输入文件记录示例:

Y,1525039510,http-192.168.2.2,15-01-2011 00:00:032:728,64
Y,1525131958,http-192.168.2.2,15-01-2011 00:00:033:613,75

我对第四列(日期)有疑问。

我当前的字段条目是这样的:

start_time DATE "DD-MM-YYYY HH:MI

如何解析输入的最后一部分 032:728(秒和毫秒)

我试过 SSS:FF3 和 SS.FF3,没有运气。

【问题讨论】:

  • 您确定要将数据加载到 DATE 列而不是 TIMESTAMP 吗? TIMESTAMP 可以存储毫秒,而 DATE 不能。假设您只想摆脱毫秒,为什么秒有三个数字?你真的可以在该领域的那部分时间超过 59 秒吗?
  • @Justin Cave:为什么秒有 3 个数字?我希望我知道,问给我输入文件的人!
  • @d-live:不,日期格式无法识别
  • 可以在“秒”字段中超过 59 秒吗?还是第一个数字总是 0?

标签: sql oracle date


【解决方案1】:

您可以将输入视为字符串并使用函数对其进行转换。像这样的东西应该可以工作:

start_time CHAR to_date(substr(:start_time, 1, 20), 'dd-mm-yyyy hh24:mi":0"ss')

我不得不删除毫秒部分,因为它们不是 DATE 数据类型的一部分(to_date 无法识别 FF 格式)。

【讨论】:

    【解决方案2】:

    您可以将其读入时间戳字段。数据看起来有点奇怪:15-01-2011 00:00:033:613,75 但转换格式应该是 dd-mm-yyyy hh[24]:mi:0ss:fff,ff 确保您的 nls 设置符合预期。

    罗纳德。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      相关资源
      最近更新 更多