将变量传递给postgresql的日期extract()函数?

Hen*_*gon 0 postgresql parameters date extract function

我不知道如何将变量传递到 postgresql 提取函数中,例如:

select 'day' as i;
extract(i from a_date)
Run Code Online (Sandbox Code Playgroud)

这给了我

错误:时区单位“i”的时间戳无法识别

如果我可以传入一个字符串,extract('day' from a_date),为什么不能传入一个变量呢?

Pav*_*ule 5

ANSI SQL 不支持那里的参数。请改用 date_part 函数。

http://www.postgresql.org/docs/9.0/interactive/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT

postgres=# 选择提取(当前时间戳中的日期);
 日期部分
------------
        23
(1 行)

postgres=# 选择 date_part('day', current_timestamp);
 日期部分
------------
        23
(1 行)