POSTGRESQL:错误:无法识别日期格式

时间:2014-05-23 19:11:17

标签: sql postgresql

有一张桌子" user_order"使用列" user_id","代码" (字符变化)和created_date_key(整数)。我正在尝试编写一个查询,显示代码26的所有记录,日期大于< 12-5-2013 23:59:59'。

Select *
from user_order
where code like 26 ::text
and to_date(created_date_key ::text, 'YYYY-MM-DD') > to_date ('12-5-2013 23:59:59' ::text, 'YYYY-MM-DD')

错误:无法识别日期格式。

3 个答案:

答案 0 :(得分:1)

created_date_key应该是时间戳而不是整数。

答案 1 :(得分:0)

select *
  from user_order
 where code like 26 ::text
   and to_date(created_date_key ::text, 'YYYY-MM-DD') > '12-5-2013 23:59:59'

答案 2 :(得分:0)

字符串值需要包含在单引号中。您无需指定文本即可转换数据类型。 to_timestamp函数用于将文本数据转换为时间戳值。以下查询将选择所需的数据:

Select *
from user_order
where code = '26'
and created_date_key > to_timestamp ('12-5-2013 23:59:59', 'MM-DD-YYYY HH24:MI:SS');

<强>参考

  1. SELECT on PostgreSQL Manual。这个页面上有很多例子。
  2. Data Type Formatting Functions on PostgreSQL Manual