如何在select语句中将oracle时间戳值从UTC转换为EST?
嗨,我有一个包含时间戳数据的日期字段(开放时间)。本栏中的时间以UTC为单位。我想选择该列并将其转换为EST,然后将其插入另一个表中。我希望它是原始时间戳时的EST(考虑基于日期、月份和年份的夏令时)。我一直在阅读oracle中的各种时区函数,但大多数似乎都专注于更改数据库的时区,我不需要这样做。(开放时间)字段始终以UTC记录如何在select语句中将oracle时间戳值从UTC转换为EST?,oracle,Oracle,嗨,我有一个包含时间戳数据的日期字段(开放时间)。本栏中的时间以UTC为单位。我想选择该列并将其转换为EST,然后将其插入另一个表中。我希望它是原始时间戳时的EST(考虑基于日期、月份和年份的夏令时)。我一直在阅读oracle中的各种时区函数,但大多数似乎都专注于更改数据库的时区,我不需要这样做。(开放时间)字段始终以UTC记录 BLUF:我需要选择一个根据UTC时间记录的时间戳字段(开放时间),并将其转换为当时的EST(开放时间)。谢谢。如果您将时间戳与时区一起使用数据类型: Oracle安装
BLUF:我需要选择一个根据UTC时间记录的时间戳字段(开放时间),并将其转换为当时的EST(开放时间)。谢谢。如果您将时间戳与时区一起使用数据类型: Oracle安装程序:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
查询:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
输出:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
或者,如果您只是使用时间戳
数据类型:
Oracle安装程序:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
查询:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
输出:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
如果将时间戳与时区一起使用数据类型: Oracle安装程序:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
查询:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
输出:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
或者,如果您只是使用时间戳
数据类型:
Oracle安装程序:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
查询:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
输出:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP AT TIME ZONE 'UTC' );
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES ( SYSTIMESTAMP );
SELECT CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'UTC' AS utc,
CAST( open_time AS TIMESTAMP WITH TIME ZONE ) AT TIME ZONE 'EST' AS est
FROM Table_Name;
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
奇妙的答案,非常感谢你花这么多时间把它整理得如此简洁。注意时区<代码> EST <代码>不考虑夏令时,尝试<代码>插入Table的名字值(SyistMeMeST+间隔6个月)在时区“UTC”);代码>用于比较。使用地区名称,例如,
从…
或EST5EDT中选择时区“美国/东部”的开放时间,我正在使用此,根据我的检查,这是我想要的。谢谢<代码>选择I.DTMMOpenOpTimes,Fas-ZTZ(CAST(I.DTMPEOPEN时间戳),'0'')在DCC.事件I/Eng/<代码>时区“奇妙的答案”,非常感谢您花这么多时间把它整理得如此简洁。注意时区<代码> EST >代码>不考虑夏令时,尝试<代码>插入Table名称值(SYSTIMESTAMP+时区“UTC”的间隔“6”个月)代码>用于比较。使用地区名称,例如,从…
或EST5EDT中选择时区“美国/东部”的开放时间,我正在使用此,根据我的检查,这是我想要的。谢谢<代码>从dcc.i的时区“美国/东部”的TZ(cast(i.dtm\U open\U time作为时间戳),“0:00”)中选择i.dtm\U open\U时间