下面的查询有语法错误,该查询从last_updated_time
列中从BIZ_TRANSACTION
检索月份,其中last_updated_time
存储为毫秒。那么,如何应用date_part()
函数呢?我使用了以下查询,但它显示了date_part()
附近的语法错误。
SELECT date_part('month', timestamp TO_CHAR(TO_TIMESTAMP(LAST_UPDATED_TIME / 1000), 'DD/MM/YYYY HH24:MI:SS'))
FROM BIZ_TRANSACTION
发布于 2016-09-17 10:18:58
如果我正确理解了你的问题,你想要的是这样的东西:
SELECT date_part('month',to_timestamp(LAST_UPDATED_TIME/1000));
FROM BIZ_TRANSACTION
发布于 2016-09-17 10:21:04
DATE_PART
函数分别包含两个文本类型的参数和一些类型的时间/日期/间隔。
当您将时间戳转换为char类型时,没有与输入类型相匹配的函数,因为它将成为文本和文本。
此外,这是一个多余的开销,当您从它检索月份号时,可以将时间戳转换为char。在这种情况下,格式化没有任何区别,最好是使用Postgres默认日期样式,这样您就不会遇到刚才遇到的错误:-)
select date_part('month', to_timestamp(last_updated_time/1000))
from biz_transaction
9.5版本的date_part
函数列表是(输入\df date_part
,请参阅psql中的内容):
Schema | Name | Result datatype | Datatype of arguments
------------+-----------+-------------------+-----------------------------------
pg_catalog | date_part | double precision | text, abstime
pg_catalog | date_part | double precision | text, date
pg_catalog | date_part | double precision | text, interval
pg_catalog | date_part | double precision | text, reltime
pg_catalog | date_part | double precision | text, time with time zone
pg_catalog | date_part | double precision | text, time without time zone
pg_catalog | date_part | double precision | text, timestamp with time zone
pg_catalog | date_part | double precision | text, timestamp without time zone
https://stackoverflow.com/questions/39545581
复制相似问题