如何在Firebird中从Unix时间转换为DateTime?

发布于 2025-02-08 17:21:31 字数 77 浏览 1 评论 0原文

Firebird是否有类似于MySQL的Frof_unixTime将UNIX时间转换为DateTime的功能?

Does Firebird have something similar to MySQL's FROM_UNIXTIME function for converting Unix time to datetime?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七七 2025-02-15 17:21:31

在火鸟中没有单独的内置功能。解决方案是使用 dateadd 针对时期:

dateadd(<your-unix-timestamp> second to timestamp '1970-01-01 00:00:00')

dateadd(second, <your-unix-timestamp>, timestamp '1970-01-01 00:00:00')

例如:

SQL> select dateadd(1655563246 second to timestamp '1970-01-01 00:00:00') from rdb$database;

                  DATEADD
=========================
2022-06-18 14:40:46.0000

重要的警告:结果是timestamp,它没有时区。解释因平台而异(例如Java将在当前的JVM时区中解释它)。在Firebird 4.0中,您可以通过使用Timestamp'1970-01-01 00:00:00 utc'而改用timestamp,将其作为Timestamp在UTC上进行。

There is no separate built-in function to do this in Firebird. The solution is to use DATEADD against the epoch:

dateadd(<your-unix-timestamp> second to timestamp '1970-01-01 00:00:00')

or

dateadd(second, <your-unix-timestamp>, timestamp '1970-01-01 00:00:00')

For example:

SQL> select dateadd(1655563246 second to timestamp '1970-01-01 00:00:00') from rdb$database;

                  DATEADD
=========================
2022-06-18 14:40:46.0000

Important caveat: the result is a TIMESTAMP, which is without timezone. Interpretation varies by platform (e.g. Java will interpret it in the current JVM timezone). In Firebird 4.0, you can make it a TIMESTAMP WITH TIME ZONE at UTC by using timestamp '1970-01-01 00:00:00 UTC' instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文