如何在SQL中更改时间戳的时区?
我有一个时间戳格式的时间变量(即“25.04.2021 09:00:00”) 我找到了一种使用此代码将UTC时间戳转换为赫尔辛基时间的唯一方法如何在SQL中更改时间戳的时区?,sql,oracle,Sql,Oracle,我有一个时间戳格式的时间变量(即“25.04.2021 09:00:00”) 我找到了一种使用此代码将UTC时间戳转换为赫尔辛基时间的唯一方法 select FROM_TZ( datetime, 'UTC' ) AT TIME ZONE 'EUROPE/Helsinki' AS hel_time from MYDB 然而,我犯了一个错误。您可以帮助转换吗?如果datetime是Oracle日期类型,则您可以将其转换为时间戳: FROM_TZ(CAST(datetime AS TIMESTAM
select FROM_TZ( datetime, 'UTC' ) AT TIME ZONE 'EUROPE/Helsinki' AS hel_time
from MYDB
然而,我犯了一个错误。您可以帮助转换吗?如果datetime是Oracle日期类型,则您可以将其转换为时间戳:
FROM_TZ(CAST(datetime AS TIMESTAMP), 'UTC')
给你:
select FROM_TZ(CAST(datetime AS TIMESTAMP), 'UTC' ) AT TIME ZONE 'EUROPE/Helsinki' AS hel_time
from MYDB
25-APR-21 12.00.00.000000 EUROPE/HELSINKI
现在还不清楚Java在哪里,或者在哪里有“时间”变量。如果datetime是Oracle日期类型,那么您可以将其转换为时间戳:
FROM_TZ(CAST(datetime AS TIMESTAMP), 'UTC')
给你:
select FROM_TZ(CAST(datetime AS TIMESTAMP), 'UTC' ) AT TIME ZONE 'EUROPE/Helsinki' AS hel_time
from MYDB
25-APR-21 12.00.00.000000 EUROPE/HELSINKI
现在还不清楚Java在哪里,或者“时间”变量在哪里。日期时间的数据类型是什么?@GordonLinoff数据类型是日期,JDBC类型是时间戳,你得到了什么错误?如果
datetime
是Oracle日期类型,则需要从_TZ(CAST(datetime作为时间戳),'UTC')()执行。但是Java适合于哪里,在哪里/如何将字符串(如果是一个)转换为日期或时间戳?如果您有一个Java变量,那么您可以将其转换为正确的数据类型和时区,然后将其作为正确的日期/时间戳值传递给Oracle。datetime
的数据类型是什么?@GordonLinoff data_type是date
,JDBC type是timestamp
您遇到了什么错误?如果datetime
是Oracle日期类型,则需要从_TZ(CAST(datetime作为时间戳),'UTC')
()执行。但是Java适合于哪里,在哪里/如何将字符串(如果是一个)转换为日期或时间戳?如果您有一个Java变量,那么您可以将其转换为正确的数据类型和时区,然后将其作为正确的日期/时间戳值传递给Oracle?