簡體   English   中英

如何在 PostgreSQL 中存儲混合的部分日期,格式可以是 yyyy-mm-dd、yyyy-mm 或 yyyy?

[英]How to store a mix of partial dates in PostgreSQL, which format can be yyyy-mm-dd, yyyy-mm or yyyy?

當我混合使用yyyy-mm-dd格式(例如,2000-12-31)、 yyyy-mmyyyy時,我應該如何在 PostgreSQL 中存儲日期? 我還能使用DATE列嗎?

to_date() function 可以解析不完整的日期。 如果缺少,它將默認日期為01 如果兩者都缺失,它將按日和月默認為01 如果您傳遞一個空字符串,它將默認整個表達式為0001-01-01 BC

=# select to_date('2020', 'yyyy-mm-dd');
  to_date
------------
 2020-01-01
(1 row)

=# select to_date('2020-06', 'yyyy-mm-dd');
  to_date
------------
 2020-06-01
(1 row)

=# select to_date('2020-06-28', 'yyyy-mm-dd');
  to_date
------------
 2020-06-28
(1 row)

=# select to_date('', 'yyyy-mm-dd');
    to_date    
---------------
 0001-01-01 BC
(1 row)

這些替換是否適用於您的用例?

您在評論中表示這是不可接受的。

日期和時間數據類型具有三個主要優點。

  1. 他們使用更少的空間
  2. 它們由引擎驗證
  3. 引擎提供各種函數和運算符來操作日期和時間值

如果您可以請提供有關您計划如何使用無效日期值(例如2020-00-00 )的信息,人們可以提供想法。

暫無
暫無

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

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