2016-09-17 75 views
0

我在下面的查詢中檢索了last_updated_time列的BIZ_TRANSACTION列,其中last_updated_time以毫秒爲單位存儲的語法錯誤。那麼,我該如何申請date_part()函數呢? 我使用了以下查詢,但它顯示date_part()附近的語法錯誤。PostgreSQL中date_part函數中的語法錯誤

SELECT date_part('month', timestamp TO_CHAR(TO_TIMESTAMP(LAST_UPDATED_TIME/1000), 'DD/MM/YYYY HH24:MI:SS')) 
FROM BIZ_TRANSACTION 
+0

http://stackoverflow.com/questions/7775187/month-function-and-year-function-in-postgresql-through-jpa2 –

回答

2

如果我正確理解你的問題,你想這樣的事情:

SELECT date_part('month',to_timestamp(LAST_UPDATED_TIME/1000)); 
FROM BIZ_TRANSACTION 
0

DATE_PART功能requries輸入文字,並且分別某種類型的時間/日期/時間間隔的兩個參數。

將時間戳轉換爲字符類型時,沒有與輸入類型相匹配的函數,因爲它會變成文本和文本。

而且,當您從中檢索月份號碼時,將時間戳記強制轉換爲字符時,這是一個多餘的開銷。格式化不會使在這種情況下任何區別,這是最好的Postgres的默認datestyles工作,讓你不會遇到你剛纔遇到的錯誤:-)

select date_part('month', to_timestamp(last_updated_time/1000)) 
from biz_transaction 

date_part函數列表9.5版本(看到自己在psql裏鍵入\df date_part):

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