回答

收藏

ORACLE将DATE转换为带有时区的TIMESTAMP(具有偏移量)

技术问答 技术问答 385 人阅读 | 0 人回复 | 2023-09-14

我需要在查询中将DATE值转换为带时区的TIMESTAMP,但目前我正在获取不能被EF使用的时区(欧洲/巴黎)。
" @+ X4 |1 V+ H; \/ u2 o, v例如,执行此操作时:
3 v7 q- i; D1 Z1 h/ B, qselect CAST(FECHA AS TIMESTAMP WITH TIME ZONE) from test;
" x7 K6 N% A, w我目前得到此输出:; Q7 F6 k( I  q& U3 r6 O' D
07/03/14 09:22:00,000000000 EUROPE/PARIS( t: o) ~+ Z& q3 a# v
但我需要像这样:0 t, j6 P, l- w$ k; @" S) m& c% n
07/03/14 09:22:00,000000000 +01:00( U# U5 S1 t; R
任何想法如何做到这一点?
+ `, J1 g. S1 B                * {: s; T5 p  T& Z1 M# w0 a
解决方案:- O5 ^! b/ L+ w* R  D+ A% s
               
7 @  u  F3 {4 L6 A$ d* q6 k% L6 l" y1 r1 I! ~# c

% u: l. x$ q' [9 i& @# ~, L" Q                您可以将转换DATE为TIMESTAMP,然后使用FROM_TZ将此时间戳转换为具有时区的时间戳:
  D8 t% p1 n$ \, t; ]  DSQL> SELECT from_tz(CAST (SYSDATE AS TIMESTAMP), '+01:00') tz FROM dual;
, O, H! ]" ?1 c1 m% ~; [TZ! W8 c! G/ d( K3 E, C1 M2 {4 w
-------------------------------------------------8 |! z; q; t$ N& X" ]/ t
07/03/14 09:47:06,000000 +01:00
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则