日時データの使用
更新 : 2006 年 4 月 14 日
SQL Server 2005 の日時データ型カテゴリは、次のデータ型から構成されます。
- datetime
- smalldatetime
datetime データ型および smalldatetime データ型を使用すると、次の操作を実行できます。
- 新しい日付と時刻の入力と、既存の日付と時刻の変更。
- 日付の加算と減算。日付の計算の詳細については、「+ (加算) (Transact-SQL)」および「- (減算) (Transact-SQL)」を参照してください。
- 特定の日付または時刻の検索。
日付と時刻のシステム関数を使用して、datetime データ型および smalldatetime データ型の算術演算を行うことができます。詳細については、「関数 (Transact-SQL)」を参照してください。
日時データを使用する場合のガイドラインを次に示します。
日付と時刻の完全一致を検索するには、等号 (=) を使用します。SQL Server は、指定の年、月、日のちょうど 12:00:00:000 A.M に完全に一致する日付と時刻の値を返します (既定)。時刻の詳細については、「時刻形式」を参照してください。
SQL Server では、実行時に datetime 型の定数が評価されます。ある言語での使用が見込まれる日付形式に対応する日付文字列は、クエリを実行した接続では別の言語と日付形式を使用している場合に認識できない場合があります。たとえば、次のビューは言語が英語 (U.S.) に設定された接続上では正常に動作しますが、他の言語設定を使用する接続では正常に動作しません。
CREATE VIEW dbo.USA_Dates AS SELECT PurchaseOrderID, TotalDue FROM AdventureWorks.Purchasing.PurchaseOrderHeader WHERE OrderDate < 'May 1, 2002';
複数の言語設定を使用する接続で実行されるクエリ内で datetime 型の定数を使用する際には、日付がすべての言語設定で有効であるかどうかを確認してください。テーブル制約、ビューの WHERE 句などの、国際的なデータベースのパーマネント オブジェクトで使用する datetime 型の定数にも同じ注意が必要です。次の例で、言語や日付形式の接続設定を問わず datetime 型の定数が一様に解釈されるための方法を示します。
CREATE VIEW dbo.International_Dates AS SELECT PurchaseOrderID, TotalDue FROM AdventureWorks.Purchasing.PurchaseOrderHeader WHERE OrderDate < CONVERT(DATETIME,'20020501',101);
詳細については、「国際化に対応した Transact-SQL ステートメントの記述」を参照してください。
SQL Server では、単一引用符 (') で囲まれた次の形式の日付と時刻のデータが認識されます。
- アルファベットの日付。'April 15, 1998' など。
- 数字の日付形式。'4/15/1998' など。
- 区切りのない文字列形式。'19981207' など (1998 年 12 月 7 日に解釈されます)。
参照
その他の技術情報
日付と時刻 (Transact-SQL)
データ型 (Transact-SQL)
CAST および CONVERT (Transact-SQL)