【问题标题】:HowTo? CURRENT_TIMESTAMP AT TIME ZONE 'UTC'如何?时区 'UTC' 的 CURRENT_TIMESTAMP
【发布时间】:2019-07-14 11:53:14
【问题描述】:

我将如何修改我的呼叫

sqlalchemy.func.current_timestamp()

产生的东西

CURRENT_TIMESTAMP AT TIME ZONE 'UTC'

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    快速解决方法是执行以下操作:

    func.current_timestamp().op('AT TIME ZONE')('UTC')
    

    更合适的方法是使用compiler扩展并定义CURRENT_TIMESTAMP的自定义编译。实际上,它的文档中已经有一个example,它使用了不同的方法(TIMEZONE 函数)。由于您只需要 Postgres(我从您以前在 SA 邮件列表中的电子邮件中假设您正在使用 Postgres),这里有另一个(更好的)快速修复:

    func.timezone('UTC', func.current_timestamp())
    

    【讨论】:

    • 我总是忘记怎么做。在找到这个之前,我在谷歌搜索了几分钟。我只想说,谢谢分享。
    • 如果函数在server_default 中的Column 定义中使用,则这些都不起作用;在这种情况下,引用示例中的方法(现在为 here)确实有效。
    • 什么是func.timezone?我在文档中找不到。
    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    相关资源
    最近更新 更多