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

Firebird中如何将Unix时间转换为datetime类型

Firebird 中实现Unix时间转Datetime的方案

Firebird 没有提供和 MySQL 完全同名的FROM_UNIXTIME内置函数,但可以通过内置日期运算实现完全相同的Unix时间戳到datetime类型的转换效果,不同版本的实现方式如下:

  • Firebird 3.0 及以上版本
    推荐使用DATEADD函数直接偏移计算,Unix时间戳的本质是从UTC时间1970-01-01 00:00:00开始累计的秒数,参考写法:
    -- 将unix_ts字段替换为你存储Unix时间戳的字段即可
    SELECT DATEADD(SECOND, unix_ts, TIMESTAMP '1970-01-01 00:00:00') AS convert_result
    FROM your_table;
    
    如果你需要适配本地时区,可以根据所在时区的偏移量追加时间调整,例如东八区场景可以额外加8小时,或使用内置的AT TIME ZONE语法做标准时区转换。
  • Firebird 2.5 及更早版本
    旧版本可利用Firebird日期类型的数值存储特性(1个单位代表1天)直接做算术运算实现转换,参考写法:
    -- 注意除数必须写86400.0触发浮点运算,避免整数除法丢失时分秒精度
    SELECT TIMESTAMP '1970-01-01 00:00:00' + unix_ts / 86400.0 AS convert_result
    FROM your_table;
    

如果日常使用中频繁需要做这个转换,你也可以在库中自定义一个名为FROM_UNIXTIME的自定义函数,入参设为整型的Unix时间戳,内部封装上述转换逻辑,调用时就可以和MySQL的同名函数用法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:31:10