2010-11-28 35 views
3

我正在使用C#在本地教會的日記系統上工作,但在存儲出生日期時遇到了數據庫連接問題。據MSDN可能代表的最早日期是1月1日1.我應該如何記錄耶穌基督的出生日期和我們以前的重要人物?代表出生日期

+1

任何人都出生在4月1日? – 2010-11-28 21:13:05

+2

當編制恐龍化石時,我遇到了同樣的問題( – 2010-11-28 21:14:57

+0

)MySQL的`datetime`類型解決了這個問題,儘管我不認爲它可以存儲化石日期;-)。也許在MSSQL中有類似的東西(或者你正在使用的東西)? – Bojangles 2010-11-28 21:17:19

回答

1

您將不得不推出自己的類來處理.NET中的BC日期,並將它們作爲字符串存儲在數據庫中,或者作爲單獨的字段存儲在年,月份日(取決於需要的準確度)需要在數據庫端執行搜索和排序(我認爲你會這樣做)。

SQL Server對日期的支持比.NET更具限制性(它只能追溯到1753年或1752年左右)。

This blog post是一種可能的實施方式,雖然是相當有限的,因爲它只存儲一年。但我相信你可以根據你的需要修改它。例如,如果你非常喜歡它,它可以很好地實現一些接口,如IComparable,IEquatable,IFormattable和IConvertible,以便更好地與其餘的框架進行交互。

0

簡單的答案 - 將日,月和年存儲爲單獨的數字字段。日和月可以合併爲一年中的每日價值,但您需要注意閏年。

備選答案 - 有一個日期轉換爲天數標準的方法和背部...

http://en.wikipedia.org/wiki/Julian_day

如果你自己做的轉換,你基本上存儲號碼(即只是恰好代表一個日期),所以你應該沒有問題。好吧 - 除了確保你的轉換是正確的。