簡體   English   中英

將 TEXT 轉換為日期 ('yyyy-mm-dd') 格式時輸出不正確 (Postgresql)

[英]Incorrect Output when converting TEXT to Date ('yyyy-mm-dd') format (Postgresql)

在我使用以下代碼將列“生日”(表:動物)從 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'。

感謝您的幫助。

我假設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');

您需要對列類型進行類型轉換。 試試下面的查詢。

ALTER TABLE animals ALTER birthdate type date
using      (birthdate::date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM