2011-07-14 12 views
2

SQL Server 2005 Express Editionを使用しています。私は生年月日をテーブルに格納したいのですが、どのデータ型を使用するべきですか?SQL Server 2005の日付データ型

Datetimeには日付も表示されます。

SQL Server 2005に日付のみを格納する方法はありますか?

+1

そうでもないだろう - SQL Serverの** 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(日、DATEDIFF(日、0、DOBCol)、0)時間の部分を削除する方法を理解することができません。あなたはそれを詳しく教えてもらえますか? – vatspoo