You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX中如何将MySQL时间戳转换为指定格式日期时间?

问题分析与解决方法

你的语句错误点

  1. 引号使用错误:Oracle中字符串(包括日期格式串)必须用单引号'包裹,双引号"仅用于定义大小写敏感的对象名称(比如表名、列名),你的语句里用双引号会导致Oracle无法识别为字符串。
  2. 函数用法错误:TO_DATE()是用来解析符合指定格式的日期字符串的,而你传入的是Unix秒级时间戳(从1970-01-01 00:00:00开始的秒数),这类数值不能直接用TO_DATE解析。

正确转换方法

Unix秒级时间戳的转换逻辑是:基于Oracle的起始基准日期DATE '1970-01-01',加上时间戳对应的天数(秒数除以86400,因为1天=86400秒),再用TO_CHAR()格式化为你需要的日期字符串。

示例SQL语句:

SELECT TO_CHAR(DATE '1970-01-01' + 1661596801/86400, 'DD/MM/YYYY - HH24:MI:SS') AS formatted_datetime
FROM dual;

如果需要考虑时区(比如时间戳是UTC时间,需转换为本地时区),可以使用带时区的时间类型处理:

SELECT TO_CHAR(
    FROM_TZ(TIMESTAMP '1970-01-01 00:00:00', 'UTC') + INTERVAL '1' SECOND * 1661596801,
    'DD/MM/YYYY - HH24:MI:SS'
) AS local_datetime
FROM dual;

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:57:21