0
我正在爲Heroku(Postgres)構建一個應用程序,但由於各種原因,使用MySQL在本地開發它。我遇到了一些障礙,涉及到我的MySQL開發環境毫不費力,但是heroku Postgres環境掛起。下面是從Heroku的日誌流:PostgreSQL中的時間/日期時間比較(Heroku)
2012-02-07T10:00:00+00:00 app[web.1]: Report Load (2.5ms) SELECT id, datetime_utc FROM "reports" WHERE (datetime_utc = '2012-02-07 10:00:00.000000') AND (datetime_utc > spot_sunrise_utc AND datetime_utc > spot_sunset_utc) ORDER BY datetime_utc ASC LIMIT 500
2012-02-07T10:00:00+00:00 app[web.1]: PGError: ERROR: operator does not exist: timestamp without time zone > time without time zone
2012-02-07T10:00:00+00:00 app[web.1]: LINE 1: ...EEN 0.4573170731707317 and 200) AND (datetime_utc > spot_sun...
2012-02-07T10:00:00+00:00 app[web.1]: ^
2012-02-07T10:00:00+00:00 app[web.1]: HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
的datetime_utc
場是一個真正的datetime
而spot_sunrise
/sunset_utc
領域只是時間值。
這是什麼原因造成的,我該如何解決?
嗨Erwin - 你的意思是「CAST(datetime_utc as time)」嗎?問題是我實際上需要整個日期時間信息 – user1051849 2012-02-07 10:33:36
如果你想比較'時間戳'的時間,你必須將它轉換爲'時間'。無論如何,第一個WHERE條件使用完整的時間戳。是的,'datetime_utc :: time'與'CAST(datetime_utc as time)'相同。 – 2012-02-07 10:39:12
好的非常感謝澄清。不幸的是我很痛苦地意識到爲開發和生產維護不同的dbs所涉及的問題 - 希望儘快解決這些問題。 – user1051849 2012-02-07 11:38:26