查询时间戳Postgresql

时间:2012-11-27 09:01:53

标签: python postgresql

我正在尝试通过API执行包含日期的查询。日期应为 ISO_8601日期格式(yyyy-MM-dd'T'HH:mm:ssZ)

例如,我表中的一个元组可以有日期:

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

我通过API执行查询的代码是用python编写的。我不确定异常是什么意思?是否无法使用String查询时间戳?

1 个答案:

答案 0 :(得分: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