PostgreSQL 中 date_part 函数的语法错误
Syntax error in date_part function in PostgreSQL
我在以下查询中有语法错误,该查询从 BIZ_TRANSACTION
的 last_updated_time
列检索月份,其中 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
如果我没有正确理解你的问题,你想要这样的东西:
SELECT date_part('month',to_timestamp(LAST_UPDATED_TIME/1000));
FROM BIZ_TRANSACTION
DATE_PART
函数需要两个文本类型的参数和一些 time/date/interval 类型的参数。
当您将时间戳转换为 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
我在以下查询中有语法错误,该查询从 BIZ_TRANSACTION
的 last_updated_time
列检索月份,其中 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
如果我没有正确理解你的问题,你想要这样的东西:
SELECT date_part('month',to_timestamp(LAST_UPDATED_TIME/1000));
FROM BIZ_TRANSACTION
DATE_PART
函数需要两个文本类型的参数和一些 time/date/interval 类型的参数。
当您将时间戳转换为 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