我无法弄清楚如何将变量传递到postgresql提取函数,如:
select 'day' as i;
extract(i from a_date)
给了我
错误:带时区单位的时间戳 “我”不承认
如果我可以传入一个字符串,从a_date中提取('day'),为什么不是一个变量?
答案 0 :(得分:2)
ANSI SQL不支持那里的参数。改为使用date_part函数。
http://www.postgresql.org/docs/9.0/interactive/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
postgres=# select extract(day from current_timestamp); date_part ----------- 23 (1 row) postgres=# select date_part('day', current_timestamp); date_part ----------- 23 (1 row)