Oracle时间戳 - 无法识别日期格式

时间:2015-12-05 18:00:38

标签: sql oracle date

我的表中有一个列为Timestamp的列。 将此字段转换为格式: 2003-08-09T05:48:37 + 05:30 ,我使用以下查询:

select 
TO_CHAR(CONSUMER_DLY_TIME, 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
from oms_cust_ord_head;

它给我错误:“日期格式无法识别”

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

TIMESTAMP值不包含任何时区信息,因此您无法显示它。

您想要显示哪个时区?

对于数据库操作系统的时区,您可以使用:

SELECT 
   TO_CHAR(CONSUMER_DLY_TIME, 'YYYY-MM-DD"T"HH24:MI:SS')||TO_CHAR(SYSTIMESTAMP, 'TZH:TZM')

或您当前的会话时区:

SELECT 
   TO_CHAR(CONSUMER_DLY_TIME, 'YYYY-MM-DD"T"HH24:MI:SS')||TO_CHAR(CURRENT_TIMESTAMP, 'TZH:TZM')

SELECT 
   TO_CHAR(CAST(CONSUMER_DLY_TIME AS TIMESTAMP WITH TIME ZONE), 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')

SELECT 
   TO_CHAR(CONSUMER_DLY_TIME, 'YYYY-MM-DD"T"HH24:MI:SS')||TZ_OFFSET(SESSIONTIMEZONE)

答案 1 :(得分:0)

你应该使用

select trunc(<timestamp_column>) from your_table

详细阅读Format Models

注意:显示日期的格式取决于您的会话参数nls_date_format。