【问题标题】:Not able to trim timestamp format in sql loader无法在 sql loader 中修剪时间戳格式
【发布时间】:2020-02-18 20:34:54
【问题描述】:

我是 SQL 加载器的新手,在通过 SQL 加载器加载数据时无法修剪时间戳格式。 我的控制文件如下所示:

LOAD DATA
APPEND
INTO TABLE MyTable
fields terminated by ','
trailing nullcols
(
column1,
column2,
column3,
column4,
DATE EXPRESSION "current_timestamp(1)"
)

MyTable 中加载的日期列格式如下: 20 年 2 月 18 日 18.10.33.700000000

我想从输出中修剪毫秒数(.700000000)。我的输出应该是“18-FEB-20 18.10.33”。有没有办法通过 SQL 加载器本身来做到这一点?

【问题讨论】:

  • 尝试使用"current_date" 而不是"current_timestamp(1)"。如果这不起作用,您也许可以使用 Oracle FORMAT 函数来格式化时间戳字符串。
  • @digital.aaron "current_date" 只显示日期而不是时间。
  • 您需要“日期表达式 current_timestamp(0)”。在格式 timestamp(n) 中,n 告诉 Oracle 要保留小数秒的位数。
  • 您是想说表中的 column5 是日期数据类型,并且您正试图将时间戳数据加载到其中吗?
  • @Gary_W。第 5 列的名称是日期。数据类型仅为时间戳。这工作正常,但我不想在输出中出现小数秒

标签: oracle sql-loader time-format


【解决方案1】:

TO_CHAR(current_timestamp(1), 'DD-MON-YY hh:mi:ss') 在 SELECT 语句中工作,以按照您的要求格式化 current_timestamp(1)。我不确定相同的语法是否可以在 SQL-Loader 中使用,但我希望一些非常相似的东西可以满足您的需要。

SELECT
    TO_CHAR(current_timestamp(1), 'DD-MON-YY hh:mi:ss')
FROM DUAL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2015-12-14
    • 1970-01-01
    • 2023-03-15
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多