这应该不起作用吗?
select extract(DAY FROM TIMESTAMP (select to_timestamp('2015-02-23','YY-MM-DD')::timestamp))
ERROR: syntax error at or near "select"
LINE 1: select extract(YEAR FROM TIMESTAMP (select to_timestamp('201...
^
********** Error **********
ERROR: syntax error at or near "select"
SQL state: 42601
Character: 37
如此处extract doc
所述感谢任何帮助谢谢:)
答案 0 :(得分:0)
这确实有效:
psql=> select extract(DAY FROM (select to_timestamp('2015-02-23','YY-MM-DD')::timestamp))
;
date_part
-----------
23
(1 row)
这是因为extract
的语法是:
EXTRACT(field FROM source)
示例中的关键字TIMESTAMP
实际上是文字时间戳的一部分,但您没有使用文字时间戳,而是使用标量子查询表达式,因此请保留TIMESTAMP
。
请参阅:
答案 1 :(得分:0)
以下查询将为您提供所需的结果:
select extract(DAY FROM (select to_timestamp('2015-02-23','YYYY-MM-DD')));
我用你当前的方法看到的问题:
TIMESTAMP
关键字,因为to_timestamp()
函数已经返回时间戳类型。to_timestamp()
再次投射到时间戳,这是不需要的YY-MM-DD
,但考虑到您有四位数的年份,它应该YYYY-MM-DD
。在这种情况下,这可能无关紧要,但如果您计划提取年份,则可能很重要。