Oracle where子句中的春季时间更改(DST)期间的异常
我有一个表,其中有一列数据类型为“带有本地时区的时间戳(6)” 问题: 对于下面的查询,我得到一个异常,它表示时区不存在Oracle where子句中的春季时间更改(DST)期间的异常,oracle,dst,timestamp-with-timezone,Oracle,Dst,Timestamp With Timezone,我有一个表,其中有一列数据类型为“带有本地时区的时间戳(6)” 问题: 对于下面的查询,我得到一个异常,它表示时区不存在 select * from table where update_time <= CURRENT_TIMESTAMP-3/24; select*from table where update\u time我无法在我的环境中复制,但我认为错误是由于将日期数据类型转换为带有本地时区的无效时间戳造成的 例如,在欧洲/巴黎时区,时间戳2014-03-30 02:30:00无效
select * from table where update_time <= CURRENT_TIMESTAMP-3/24;
select*from table where update\u time我无法在我的环境中复制,但我认为错误是由于将日期
数据类型转换为带有本地时区的无效时间戳造成的
例如,在欧洲/巴黎
时区,时间戳2014-03-30 02:30:00
无效:
SQL> SELECT to_timestamp_tz('2014-03-30 02:30 Europe/Paris',
2 'yyyy-mm-dd hh24:mi TZR')
3 FROM dual;
SELECT to_timestamp_tz('2014-03-30 02:30 Europe/Paris',
*
ERROR at line 1:
ORA-01878: specified field not found in datetime or interval
此时间和日期不存在,因为时钟在02:00
和03:00
之间转发
由于您的Hi的右侧,错误将与您给出的建议一起出现。我尝试了类似这样的方法,从当前时间戳>到时间戳('03-12-2014 02:30','MM-DD-YYYY hh:mi')-间隔为'3'天;我得到以下错误ORA-01878:在日期时间或间隔01878中找不到指定字段。00000-“在datetime或interval中未找到指定字段”*原因:在datetime或interval中未找到指定字段*操作:确保指定的字段在日期时间或间隔内。停止将时间戳
与时间戳与时区
进行比较。使用来标记时间戳
而不是来标记时间戳
,就像我在回答中所做的那样。你仍然有同样的问题吗?很抱歉反应太晚。它与to_timestamp_tz一起工作
select * from table where update_time <= CURRENT_TIMESTAMP - INTERVAL '3' HOUR;