You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MySQL转Oracle:如何改写时区转换查询为Oracle语法?

等效的Oracle时区转换查询

我来帮你把这条MySQL查询转换成Oracle语法——Oracle没有直接对应convert_tz()的函数,但我们可以用FROM_TZ()AT TIME ZONE组合实现完全相同的效果:

SELECT FROM_TZ(CAST(datetime AS TIMESTAMP), 'UTC') AT TIME ZONE 'America/Los_Angeles' AS datetime1
FROM XYZ;

细节说明:

  • 假设你的datetime字段是DATE类型:先用CAST把它转成TIMESTAMP,再用FROM_TZ标记为UTC时区的时间戳
  • 要是datetime本身就是TIMESTAMP类型,可以去掉CAST,简化成:
    SELECT FROM_TZ(datetime, 'UTC') AT TIME ZONE 'America/Los_Angeles' AS datetime1
    FROM XYZ;
    
  • Oracle支持的时区名称和MySQL基本兼容,比如America/Los_Angeles是可以直接用的,比缩写(如PST/PDT)更准确,因为它会自动处理夏令时切换。

内容的提问来源于stack exchange,提问作者Prashant Chauhan

火山引擎 最新活动