【问题标题】:Converting SQL Server string to datetime for import into Oracle将 SQL Server 字符串转换为日期时间以导入 Oracle
【发布时间】:2019-12-25 08:25:54
【问题描述】:

我在 TOAD 中使用自动化设计器通过 odbc 连接将数据从 SQL Server 导入到 Oracle 表中。

其中一列是yyyy-mm-dd hh24:mi:ss.mmmmm 形式的字符串ssdatetimestr。我想在导入向导中使用表达式将其转换为 Oracle 日期。

我试过表达方式

to_date(substr(ssdatetimestr,1,19),'yyyy-mm-dd hh24:mi:ss')

但这会引发错误

'to_date' 不是有效的日期和时间

任何建议

【问题讨论】:

  • 所以你要截断日期的毫秒部分?你能分享你运行转换所针对的字符串/数据吗?

标签: sql-server oracle import toad


【解决方案1】:

我建议使用DATE/TIMESTAMP 字面量:

要将 DATE 值指定为文字,您必须使用公历。您可以指定一个 ANSI 文字,如下例所示:

DATE '1998-12-25'

TIMESTAMP 数据类型存储年、月、日、小时、分钟和秒以及小数秒值。当您将 TIMESTAMP 指定为文字时,fractional_seconds_precision 值可以是最多 9 位的任意位数,如下所示:

TIMESTAMP '1997-01-31 09:26:50.124'

【讨论】:

    【解决方案2】:

    您给出的错误消息(如果您包含 ORA-nnnn 编号会更好)表明问题不在于 to_date 函数的构造(我认为它没有任何问题,顺便说一句),而是它如何在上下文中使用。但是你没有给我们上下文......包括你的 to_date 的完整声明

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 2015-02-12
      相关资源
      最近更新 更多