2012-11-27 285 views
0

我試圖通過API執行包含日期的查詢。日期應爲ISO_8601日期格式(yyyy-MM-dd'T'HH:mm:ssZ)查詢時間戳Postgresql

例如,在我的表中的元組的人可以將日期:

2012-11-11T00:00:00+0000. 

Unicode中它被用於查詢如下:

2012-11-11T00%3A00%3A00%2B0000 

都是我自己檢查,看是否日期是有效的通過,但我得到以下SQL異常:

SQL Exception: ERROR: operator does not exist: timestamp with time zone >= character varying 

我的代碼執行曲eries通過API是用python編寫的。我不確定這個例外是什麼意思?是不是可以查詢帶有String的時間戳?

+0

你能發佈一些實際的代碼嗎? :) – Talvalin

回答

1

要指定一個時間戳字符,請使用以下格式:

where ts_column >= timestamp '2012-11-11 T00:00:00+0000' 

關鍵字timestamp重要的是要定義一個時間戳文字,否則它是「唯一」的字符值(這就是錯誤消息告訴您)。該值必須符合ISO日期樣式。

另一種選擇是使用to_timestamp功能:

where ts_column >= to_timestamp('2012-11-11 00:00:00', 'yyyy-mm-dd hh24:mi:ss'); 

,讓你在你的文字的實際格式更多的控制。

欲瞭解更多詳細信息,請參閱手冊:http://www.postgresql.org/docs/current/static/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE