2013-03-15 75 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

相關問題