在我使用以下代碼將列“生日”(表:動物)從 CHAR 轉換為日期后,將顯示年份不正確的日期。
這是“生日”在字符格式中的樣子:
- 01/18/2019
- 02/05/2005
- 05/06/2013 ...
代碼:
ALTER TABLE animals ALTER COLUMN birthdate TYPE DATE
using to_date(birthdate, 'YYYY-MM-DD');
我得到的輸出是這樣的:
- 0019-01-18
- 0005-02-05
- 0013-05-06 ....
它應該是:
- 2019-01-18
- 2005-02-05
- 2013-05-06...
似乎日期的 yyyy 部分中的“2”被替換為“0”。這是不正確的,知道為什么會這樣嗎?我想要的格式是'yyyy-mm-dd'。
感謝您的幫助。
uj5u.com熱心網友回復:
我假設的初始資料型別birthday是文本。在這種情況下,您的格式字串YYYY-MM-DD與資料格式不匹配。應該是MM/DD/YYYY。
ALTER TABLE animals ALTER COLUMN birthdate TYPE DATE
using to_date(birthdate, 'MM/DD/YYYY');
請注意,一旦將 的型別birthdate更改為date(或date根本alter table不需要),它就不再有格式了。您可以格式化或者說存在,你想使用它to_char。
select to_char(birthdate, 'YYYY-MM-DD');
uj5u.com熱心網友回復:
您需要對列型別進行型別轉換。試試下面的查詢。
ALTER TABLE animals ALTER birthdate type date
using (birthdate::date)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/355167.html
標籤:sql PostgreSQL 日期
