Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何转换时间戳';为了在Oracle数据库中比较时区?_Sql_Database_Oracle_Timezone_Timestamp - Fatal编程技术网

Sql 如何转换时间戳';为了在Oracle数据库中比较时区?

Sql 如何转换时间戳';为了在Oracle数据库中比较时区?,sql,database,oracle,timezone,timestamp,Sql,Database,Oracle,Timezone,Timestamp,我们使用的是Oracle11g,我们有一个带有时间戳列的表,该列不包含时区(简单地定义为时间戳)。时区写在另一列中 我希望能够在考虑时区的同时使用“max”功能。 可能有一个功能可以很容易地转换时区,我只是不知道 我希望能够做到以下几点: SELECT max(covert_to_timezone(my_timestamp, my_timezone, 'GMT')) FROM my_table 我该怎么做 ================== 解决方案:根据Ajith Sasidharan的回

我们使用的是Oracle11g,我们有一个带有时间戳列的表,该列不包含时区(简单地定义为时间戳)。时区写在另一列中

我希望能够在考虑时区的同时使用“max”功能。
可能有一个功能可以很容易地转换时区,我只是不知道

我希望能够做到以下几点:

SELECT max(covert_to_timezone(my_timestamp, my_timezone, 'GMT')) FROM my_table
我该怎么做

==================

解决方案:根据Ajith Sasidharan的回答:

SELECT max(from_tz(my_timestamp, my_timezone) at time zone '0:00') FROM my_table
更新:如果要比较日期,只需使用“cast”:

SELECT max(from_tz(cast(my_date as timestamp), my_timezone) at time zone '0:00') FROM my_table

顺便说一句,现在我得到了“ORA 01878”错误,这意味着我们的表包含无效时间(DST狗屎)。

我想您需要这样一个函数::

select to_char((from_tz(to_timestamp(to_char(DATABASE_DATE, 'YYYY-MM-DD HH:MI:SS PM'), 'YYYY-MM-DD HH:MI:SS PM') ,'America/New_York')
    at time zone 'America/Los_Angeles'),'YYYY-MM-DD HH:MI:SS PM TZD') as localtime
    from table

行得通,但我会编辑我的问题并添加答案,因为您包含了(对我而言)不必要的数据。