要更改的日期格式
Date format to change
我需要帮助将日期格式从 (05 May 2016 12:00 AM
) 更改为 (YYYY-MM-DD HH:MM:SS
) 格式。
你能帮我解决这个问题吗?
非常感谢您的帮助。
我试过以下格式
SELECT TO_CHAR(TO_DATE('2 Apr 2015 12:00 AM', 'DD-MON-YYYY '), 'YYYY-MM-DD')
FROM dual;
感谢 MTO 的帮助。但是我在 sqlldr 中使用相同的格式然后出现以下错误。
ora-01821 date format not recognized
LAST_UPDATE DATE 'TO_CHAR(TO_DATE(:LAST_UPDATE, 'DD MON YYYY HH12:MI AM'),'YYYY-MM-DD HH24:MI:SS')',
使用完整格式掩码:
SELECT TO_CHAR(
TO_DATE( '2 Apr 2015 12:00 AM', 'DD MON YYYY HH12:MI AM'),
'YYYY-MM-DD HH24:MI:SS'
)
FROM dual;
如果您在 SQL*Loader 中执行此操作并填充 DATE
列,那么您希望将初始字符串转换为日期,而不是返回为另一种格式的另一个字符串。
如果你使用 SQL operator functionality 那么你只需要内部的 to_date()
部分,而不是外部的 to_char()
,并且注意运算符是用双引号而不是单引号括起来的:
LAST_UPDATE "TO_DATE(:LAST_UPDATE, 'DD MON YYYY HH12:MI AM')",
但是对 datetimes and intervals 有更简单的处理,您正尝试将其与 DATE
关键字一起使用;但是随后您提供 SQL 运算符而不仅仅是格式掩码。你可以这样做:
LAST_UPDATE DATE 'DD MON YYYY HH12:MI AM'.
这假设 SQL*Loader 在英文 NLS_LANG 环境中是 运行,因为它依赖于 NLS_DATE_LANGUAGE 设置来处理 MON
元素。如果不是这种情况,则可以使用 SQL 运算符方法,使用 to_date()
的可选第三个参数来指定它期望字符串是英文的。
您的问题似乎部分地混淆了,认为 Oracle 以特定格式存储日期。它不是;它使用您通常不需要知道的内部表示,并且由您的客户以可读格式显示该内部值,这是使用显式或隐式转换。您似乎假设日期 'stored' 为 YYYY-MM-DD HH24:MI:SS,但这正是您的客户向您显示数据的方式。
我需要帮助将日期格式从 (05 May 2016 12:00 AM
) 更改为 (YYYY-MM-DD HH:MM:SS
) 格式。
你能帮我解决这个问题吗?
非常感谢您的帮助。
我试过以下格式
SELECT TO_CHAR(TO_DATE('2 Apr 2015 12:00 AM', 'DD-MON-YYYY '), 'YYYY-MM-DD')
FROM dual;
感谢 MTO 的帮助。但是我在 sqlldr 中使用相同的格式然后出现以下错误。
ora-01821 date format not recognized
LAST_UPDATE DATE 'TO_CHAR(TO_DATE(:LAST_UPDATE, 'DD MON YYYY HH12:MI AM'),'YYYY-MM-DD HH24:MI:SS')',
使用完整格式掩码:
SELECT TO_CHAR(
TO_DATE( '2 Apr 2015 12:00 AM', 'DD MON YYYY HH12:MI AM'),
'YYYY-MM-DD HH24:MI:SS'
)
FROM dual;
如果您在 SQL*Loader 中执行此操作并填充 DATE
列,那么您希望将初始字符串转换为日期,而不是返回为另一种格式的另一个字符串。
如果你使用 SQL operator functionality 那么你只需要内部的 to_date()
部分,而不是外部的 to_char()
,并且注意运算符是用双引号而不是单引号括起来的:
LAST_UPDATE "TO_DATE(:LAST_UPDATE, 'DD MON YYYY HH12:MI AM')",
但是对 datetimes and intervals 有更简单的处理,您正尝试将其与 DATE
关键字一起使用;但是随后您提供 SQL 运算符而不仅仅是格式掩码。你可以这样做:
LAST_UPDATE DATE 'DD MON YYYY HH12:MI AM'.
这假设 SQL*Loader 在英文 NLS_LANG 环境中是 运行,因为它依赖于 NLS_DATE_LANGUAGE 设置来处理 MON
元素。如果不是这种情况,则可以使用 SQL 运算符方法,使用 to_date()
的可选第三个参数来指定它期望字符串是英文的。
您的问题似乎部分地混淆了,认为 Oracle 以特定格式存储日期。它不是;它使用您通常不需要知道的内部表示,并且由您的客户以可读格式显示该内部值,这是使用显式或隐式转换。您似乎假设日期 'stored' 为 YYYY-MM-DD HH24:MI:SS,但这正是您的客户向您显示数据的方式。