我的表中有一个列为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;
它给我错误:“日期格式无法识别”
如何解决这个问题?
答案 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。