小编Tho*_*ade的帖子

在sql中使用Oracle“at time zone”函数——问题及解决方法

我有一个带有日期列的表,我知道它存储在 GMT 中。我有一个接受日期输入和帐户 ID 的程序。过程:1)获取账户ID时区(存储在表account中)2)确定GMT的开始和结束范围如下: v_start_time := cast( from_tz( cast( i_date as timestamp ), v_tz ) at time zone c_gmt as日期 ); -- 其中 i_date 是输入,v_tz 是 'US/Eastern' 或来自 v$timezone_names 的任何其他 tzname,而 c_gmt 是字符串 'GMT' v_end_time := v_start_time + 1; -- 将一天添加到开始日期 3) 将 sys_refcursor 返回给调用者:

open o_cur for
select gmt_col, some_value
from my_table
where account_id = i_account_id
    and gmt_col between v_start_time and v_end_time;
Run Code Online (Sandbox Code Playgroud)

但是,开发人员希望游标中同时包含 gmt_date 和本地时间。首先,我尝试使用与必须确定 v_start_time 完全相同的转换方法,即:

open o_cur for 
select gmt_col,
    cast( from_tz( cast( gmt_col as timestamp …
Run Code Online (Sandbox Code Playgroud)

sql oracle timezone timestamp ora-00905

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

ora-00905 ×1

oracle ×1

sql ×1

timestamp ×1

timezone ×1