問題:
T-SQLの日付に特定の日数を追加したい。
例:
データベースには、 Flightという名前のテーブルがあります
Code
列にデータがあります およびDepartureDate
。
コード | 出発日 |
---|---|
LT2030 | 2019-02-20 |
GH1100 | 2019-03-01 |
SR5467 | 2019-12-30 |
現在の出発日に2日を追加して、すべてのフライトの出発日を変更しましょう。
解決策:
DATEADD()関数を使用して、追加する時間の単位を指定し、追加する量を定義し、変更する日付を選択します。クエリを見てください:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
結果は次のとおりです。
コード | ChangedDepartureDate |
---|---|
LT2030 | 2019-02-22 |
GH1100 | 2019-03-03 |
SR5467 | 2020-01-01 |
ディスカッション:
選択した時間単位の特定の数値を追加して日付や時刻を変更するには、SQL ServerのDATEADD()関数を使用します。この関数は、日付、時刻、または日付と時刻のデータ型で機能します。 3つの引数が必要です:
- 追加する日付/時刻の希望する単位。この例では、日です。日付に日を追加したい。
- 追加するユニットの数。この例では、これは2です。既存の日付に2日を追加します。
- 変更する日付/時刻/日時を含む列。 (この例では、DepartureDate列を使用します。)この引数は、日付/時刻/日時を返す式にすることもできます。
DATEADD()関数は新しい日付を返します。この例では、新しい日付が ChangedDepartureDate
として返されます。 桁。 「LT2030」フライトコードの場合、日付「2019-02-20」は「2019-02-22」になりました。
関数DATEADD()は、 year
のような日付と時刻の単位を使用できます。 、四半期コード> 、
month
、 dayofyear
、 day
、週
、平日
、時間
、分コード> 、
second
、など。SQLServerのドキュメントで詳細を確認できます。