2011-07-14 183 views
2

我正在使用SQL Server 2005 Express Edition。我想將出生日期存儲在表中,我應該使用哪種數據類型?SQL Server 2005的日期數據類型

Datetime也提供時間與日期。

有什麼辦法在SQL Server 2005中只存儲日期?

+1

不是真的 - SQL服務器2008 ** **推出了'DATE'(日期只)數據類型。 SQL Server 2008 Express也是免費的...... –

+0

@marc_s是啊知道這一點,但希望留在SqlServer2005暫時 – vatspoo

回答

3

使用smalldatetime(4字節存儲)並添加檢查約束。不要使用char或其他。

檢查約束會是這樣的基礎上,這個問題Best approach to remove time part of datetime in SQL Server

DOBCol = DATEADD(day, DATEDIFF(day, 0, DOBCol), 0) 
+0

...但如何將刪除時間部分?你能解釋一下嗎? – vatspoo

+0

@vatspoo:這確保時間不會被存儲。如果您提供,datetime只有時間。您的客戶代碼是否會爲DOB發送時間? – gbn

+0

不,我只需要存儲日期,但我無法理解DATEADD(day,DATEDIFF(day,0,DOBCol),0)如何刪除時間部分。你能否詳細說明一下? – vatspoo