如何在Jooq中选择unix时间戳作为日期?

Anna Ira Hurnaus |

我正在使用将日期存储为unix时间(自1970年以来的秒数)的数据库。我有以下sql可以正常工作:

select CONVERT_TZ(FROM_UNIXTIME(creation_date), @@session.time_zone, "Europe/Berlin")
from transaction; 

这是我在Jooq中尝试执行的操作:

dsl.select(DSL.date(TRANSACTION.CREATION_DATE) // This does not work
   .from(TRANSACTION)
   .fetch();
卢卡斯·埃德(Lukas Eder)

您在此处使用了许多特定于供应商的功能,jOOQ中不支持这些功能。与往常一样,遇到这种情况时,可以使用简单的SQL模板化来获得自己的支持,最好是构建自己的库:

public static Field<Timestamp> fromUnixtime(Field<? extends Number> field) {
    return field("from_unixtime({0})", SQLDataType.TIMESTAMP, field);
}

public static Field<Timestamp> convertTz(
    Field<Timestamp> field,
    Field<String> fromTz,
    Field<String> toTz
) {
    return field("convert_tz({0}, {1}, {2})", SQLDataType.TIMESTAMP, field, fromTz, toTz);
}

public static Field<String> sessionTimeZone() {
    return field("@@session.time_zone", SQLDataType.VARCHAR);
}

现在,您可以像这样使用它:

dsl.select(convertTz(
        fromUnixtime(TRANSACTION.CREATION_DATE), 
        sessionTimeZone(), 
        inline("Europe/Berlin"))
   )
   .from(TRANSACTION)
   .fetch();

或者,更进一步,将所有这些表达式包装在另一个辅助函数中,如下所示:

public static Field<Timestamp> fromUnixtimeToBerlinTZ(Field<? extends Number> field) {
    return convertTz(
        fromUnixtime(TRANSACTION.CREATION_DATE), 
        sessionTimeZone(), 
        inline("Europe/Berlin")
    );
}

所有这些示例都假设通常的静态导入:

import static org.jooq.impl.DSL.*;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在日期时间选择器中选择时间

来自分类Dev

如何在CockroachDB中将Unix时间戳转换为日期?

来自分类Dev

如何在laravel的unix时间戳中保存日期?

来自分类Dev

如何在postgresql中以日期格式转换unix时间戳?

来自分类Dev

从日期和时间选择器中选择日期和时间后,如何在日历的“创建事件”功能中将它们作为参数传递?

来自分类Dev

如何在Crystal Reports中将日期时间戳转换为Unix时间?

来自分类Dev

如何在Apache PIG上将时间和日期转换为Unix时间戳?

来自分类Dev

从SQLAlchemy中的时间戳中选择日期

来自分类Dev

从SQLAlchemy中的时间戳中选择日期

来自分类Dev

如何将Unix时间戳转换为日期时间

来自分类Dev

如何在PHP mongo查询中将unix时间戳转换为mongodb日期

来自分类Dev

如何在Presto SQL中将unix时间戳转换为日期并从中提取月份

来自分类Dev

如何在铸造轮廓中将Unix时间戳转换为日期?

来自分类Dev

如何在graphlab(Python 2.7)中将日期从Unix时间戳转换为人类可读的格式

来自分类Dev

如何在 amcharts4 中将时间戳 unix 格式化为日期

来自分类Dev

从时间戳中选择月份

来自分类Dev

使用JOOQ查询Unix时间戳

来自分类Dev

如何使用时间戳从mysql中选择数据

来自分类Dev

如何从MySQL中选择没有行的时间戳

来自分类Dev

如何从每个货币对 SQL 中选择最大时间戳?

来自分类Dev

如何在SQL中选择连续日期

来自分类Dev

如何在mysql中选择最近的日期

来自分类Dev

给定datetime列,如何选择Unix时间戳?

来自分类Dev

ELK - 如何从日志文件中选择时间戳而不是插入时间戳

来自分类Dev

日期时间Unix时间戳包含毫秒

来自分类Dev

从unix时间戳获取日期和时间

来自分类Dev

如何在Orion中存储时间戳或日期时间?

来自分类Dev

如何在Orion中存储时间戳或日期时间?

来自分类Dev

如何在MySQL中选择没有时间戳的最后一小时

Related 相关文章

  1. 1

    如何在日期时间选择器中选择时间

  2. 2

    如何在CockroachDB中将Unix时间戳转换为日期?

  3. 3

    如何在laravel的unix时间戳中保存日期?

  4. 4

    如何在postgresql中以日期格式转换unix时间戳?

  5. 5

    从日期和时间选择器中选择日期和时间后,如何在日历的“创建事件”功能中将它们作为参数传递?

  6. 6

    如何在Crystal Reports中将日期时间戳转换为Unix时间?

  7. 7

    如何在Apache PIG上将时间和日期转换为Unix时间戳?

  8. 8

    从SQLAlchemy中的时间戳中选择日期

  9. 9

    从SQLAlchemy中的时间戳中选择日期

  10. 10

    如何将Unix时间戳转换为日期时间

  11. 11

    如何在PHP mongo查询中将unix时间戳转换为mongodb日期

  12. 12

    如何在Presto SQL中将unix时间戳转换为日期并从中提取月份

  13. 13

    如何在铸造轮廓中将Unix时间戳转换为日期?

  14. 14

    如何在graphlab(Python 2.7)中将日期从Unix时间戳转换为人类可读的格式

  15. 15

    如何在 amcharts4 中将时间戳 unix 格式化为日期

  16. 16

    从时间戳中选择月份

  17. 17

    使用JOOQ查询Unix时间戳

  18. 18

    如何使用时间戳从mysql中选择数据

  19. 19

    如何从MySQL中选择没有行的时间戳

  20. 20

    如何从每个货币对 SQL 中选择最大时间戳?

  21. 21

    如何在SQL中选择连续日期

  22. 22

    如何在mysql中选择最近的日期

  23. 23

    给定datetime列,如何选择Unix时间戳?

  24. 24

    ELK - 如何从日志文件中选择时间戳而不是插入时间戳

  25. 25

    日期时间Unix时间戳包含毫秒

  26. 26

    从unix时间戳获取日期和时间

  27. 27

    如何在Orion中存储时间戳或日期时间?

  28. 28

    如何在Orion中存储时间戳或日期时间?

  29. 29

    如何在MySQL中选择没有时间戳的最后一小时

热门标签

归档