要将CST转换为IST时区

时间:2019-03-20 18:33:06

标签: sql oracle timezone

我的实际要求是,

这是我们在.txt文件中输入的内容,

下面一行具有(Emp ID,日期,HH:MM:SS(即时间),状态,站点编号,读者编号

123,“ 20/02/2019”,00:00:50,IN,23,1

在上面,我必须将123作为Emp ID,并将其分配给一个名为tv_emp_id的变量。

then, have to take date and HH:MM ("20/02/2019",02:30) and convert it into IST date & time (21-02-2019,14:00)), then put date (21-02-2019 format) alone in one variable called tv_date and HHMM in another variable called tv_time (14:00 it will be 1400) by Oracle query.

Finally required it with, tv_emp_id= 123;
           tv_date = 21-02-2019
           tv_time = 1400

请帮助我解决它。

谢谢

1 个答案:

答案 0 :(得分:1)

如果您的意思是Central Standard Time and India Standard Time,并且是从简单的时间戳开始的话:

alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS';
alter session set nls_timestamp_tz_format = 'YYYY-MM-DD HH24:MI:SS TZD';

select timestamp '2019-03-20 02:00:00'  as original,
  from_tz(timestamp '2019-03-20 02:00:00', 'America/Chicago') as cst,
  from_tz(timestamp '2019-03-20 02:00:00', 'America/Chicago') at time zone 'Asia/Calcutta' as ist
from dual;

ORIGINAL            CST                     IST                    
------------------- ----------------------- -----------------------
2019-03-20 02:00:00 2019-03-20 02:00:00 CDT 2019-03-20 12:30:00 IST

如果要以纯时间戳(或日期)结尾,而不是以带时区的时间戳结尾,则将结果设置为所需的数据类型。

如果您从日期开始,则需要将其强制转换为from_tz()调用中的时间戳。