2013-03-15 73 views
14

我需要的东西,产生 “CURRENT_TIMESTAMP AT TIME ZONE 'UTC'”HowTo? CURRENT_TIMESTAMP AT TIME ZONE 'UTC'

任何人来代替我呼吁sqlalchemy.func.current_timestamp()有快速的建议吗?

(道歉doubleposting这这里+ SQLAlchemy的名单,但这个破东西在生产,需要速战速决)

回答

26

速战速决将做到以下几点:

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

更合适方法是使用compiler扩展名并定义CURRENT_TIMESTAMP的自定义编译。实际上,其文档中已有example,它使用了不同的方法(TIMEZONE函数)。既然你只需要这个Postgres的(我从以前的中,你使用的是Postgres SA邮件列表的邮件假设),这里是另一个(更好)速战速决:

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

我总是忘了如何做到这一点。在找到这个消息之前,我正在Google上搜索数分钟。 我只是说,谢谢分享。 – Sri 2014-01-21 07:18:11

+2

如果函数在'Column'定义中的'server_default'中使用,那么这两者都不会起作用;在这种情况下,参考示例中的方法(现在[这里](http://docs.sqlalchemy.org/en/latest/core/compiler.html#utc-timestamp-function))确实有效。 – jtniehof 2016-08-06 20:06:07

相关问题