2011-08-25 33 views
0

我的一個客戶希望有一個自定義日期列,他只能存儲年份,月份和年份的組合(不包括一天),或者包含日,月和年的經典日期。大約日期列

應該可以使用此字段來排序數據。對於這種排序,應將「月份」日期視爲「01個月 - 年」,對於該種類,應將「年份」日期視爲「01-01年」。

我能想象兩個解決方案是:

  • Store中標準的「日 - 月 - 年」的格式顯示,並保持在一個單獨的列中的日期是如何輸入的(「年」, 「月 - 年 - 」,「日 - 月 - 年」),因此可以精確顯示大約日期的輸入方式。

  • 在postgresql數據庫中使用某種自定義日期列。

有沒有人有這方面的經驗?

回答

1

您可以使用日期時間函數來提取日期組件。我認爲沒有任何意義可以創建額外的列。而且,一些數據庫允許按功能創建索引。

+0

除非我錯了,否則如果我們想顯示數據的確切輸入方式,則需要額外的列,而不管日期如何存儲在數據庫中。想象一下輸入的日期是「2012」。它可能以「01-01-2012」的形式存儲在數據庫中。 – plang

+1

你的意思是你只想在月/日未知的情況下存儲一年?在這種情況下,使用ISO格式YYYY-MM-DD作爲字符串。這種格式很好,因爲它允許使用日期的字符串排序,因爲日期是按字典順序。 http://en.wikipedia.org/wiki/ISO_8601 – kan

+0

另外,您可以將2012-00-00存儲爲僅限一年的條目,因此可以很容易地從適當的日期記錄中確定。 – kan