Jam*_*her 10 sql oracle select date
我有一个应用程序通过以下方式上传到Oracle Data数据类型列:
TO_TIMESTAMP_TZ('2012-10-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR')
Run Code Online (Sandbox Code Playgroud)
我现在需要从此数据列中提取以下格式和时区:'YYYY-MM-DD HH24:MI:SS CDT'
注意:日期是在CST上传的,但需要在CDT中返回.
我有谷歌,但只发现以下数据类型:
SELECT dateColumn From dateTable;
09-NOV-12
SELECT TO_CHAR(dateColumn,'YYYY-MM-DD HH24:MI:SS') From dateTable;
2012-10-09 1:10:21
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下内容:
TO_TIMESTAMP_TZ(dateColumn,'YYYY-MM-DD HH24:MI:SS CDT')
data format not recognized
TO_TIMESTAMP_TZ(CRTE_DT,'YYYY-MM-DD HH24:MI:SS TZH:TZM')
09-NOV-12 1:10:21 AM +01:00
don't understand why this does not come back as YYYY-MM-DD?
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
Vin*_*rat 20
你的问题有点混乱:
Date
数据类型不保存时区的组成部分.这条信息被截断,并永远失去了,当你插入一个TIMESTAMP WITH TIME ZONE
成一个Date
.TO_CHAR
功能.在Oracle中,a Date
没有格式:它是一个时间点.TO_TIMESTAMP_TZ
将a转换VARCHAR2
为a TIMESTAMP
,但这不会将a转换Date
为a TIMESTAMP
.FROM_TZ
将时区信息添加到TIMESTAMP
(或a Date
).CST
是一个时区,但CDT
不是.CDT
是一种夏令时信息.CST/CDT
(-05:00
)和CST/CST
(-06:00
)显然会有不同的值,但CST
默认情况下,时区将根据日期继承夏令时信息.因此,您的转化可能并不像看起来那么简单.
假设您要将Date
d
时区有效的转换为时区CST/CST
的等效转换CST/CDT
,您可以使用:
SQL> SELECT from_tz(d, '-06:00') initial_ts,
2 from_tz(d, '-06:00') at time zone ('-05:00') converted_ts
3 FROM (SELECT cast(to_date('2012-10-09 01:10:21',
4 'yyyy-mm-dd hh24:mi:ss') as timestamp) d
5 FROM dual);
INITIAL_TS CONVERTED_TS
------------------------------- -------------------------------
09/10/12 01:10:21,000000 -06:00 09/10/12 02:10:21,000000 -05:00
Run Code Online (Sandbox Code Playgroud)
我的默认时间戳格式已在此处使用.我可以明确指定一种格式:
SQL> SELECT to_char(from_tz(d, '-06:00'),'yyyy-mm-dd hh24:mi:ss TZR') initial_ts,
2 to_char(from_tz(d, '-06:00') at time zone ('-05:00'),
3 'yyyy-mm-dd hh24:mi:ss TZR') converted_ts
4 FROM (SELECT cast(to_date('2012-10-09 01:10:21',
5 'yyyy-mm-dd hh24:mi:ss') as timestamp) d
6 FROM dual);
INITIAL_TS CONVERTED_TS
------------------------------- -------------------------------
2012-10-09 01:10:21 -06:00 2012-10-09 02:10:21 -05:00
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
247706 次 |
最近记录: |