この記事では、DATEADDSQL関数とその使用法について説明します。さまざまな例のシナリオ。
通常、SQLServerでは日付データ型を使用します。日付も操作する必要があります。前回の記事DATEPARTSQL FUNCTIONでは、日、年、月、四半期、曜日などの日付から特定の部分を取得する方法について説明しました。
SQL SERVER DATEADD関数を使用して、日付の特定の期間を加算または減算できます。
構文
DATEADD(datepart、number、date)
- Datepart:特定の時間間隔を加算または減算する日付の部分を指定します。年、月、日、週などの値を指定できます。これについては、例のセクションで詳しく説明します。
- 数値:日付を増減する数値です。整数である必要があります
- 日付:ここで日付を指定できます。この日付では、datepartに指定された数値を追加します。
現在の日付に10日を追加するとします。この例では、変数は次のようになります。
- 日付部分の値:日
- 数値:5
- 日付:Getdate()–現在の日付
例を使用してSQLSERVERDATEADD関数を調べます
SQL SERVERDATEADD関数のデータ型
日付式では次のデータ型を使用できます。
- 日付
- DateTime
- datetimeoffset
- datetime2
- smalldatetime
- time
次のクエリでは、datetime2データ型を持つ変数@dateを宣言しました。次のクエリに従って、DATEADDSQL関数を使用できます。
SQL SERVERDATEADD関数を使用して指定された日付範囲のテーブル
DATEADD SQL関数を使用して、ある期間のテーブルからレコードを取得できます。次のクエリでは、パラメータ@Startdateを使用して日付を指定しました。 Ordersテーブルからレコードを取得したいと思います。 @StartDateと@Enddateの間のレコードを取得する必要があります(開始日に1時間を追加します)。
次の出力が得られます。
SQL SERVERDATEADD関数を使用して日付または時刻の差を取得する
DATEADD SQL関数を使用して、開始日と終了日の差を取得できます。多くの場合、SQL SERVERDATEADD関数を使用して日付の違いを取得します。たとえば、注文を完了するのにかかった時間や、自宅からオフィスに到着するのにかかった時間を知りたいとします。
次のクエリを実行して、開始時間と終了時間の差を取得します。 DATEADDSQL関数をDATEDIFFSQL関数と一緒に使用します。
経過時間を分単位で示します。 DateADDSQL関数で値0を指定しました。日付値は1900-01-0100:00:00.000
SQLConvert日付形式を使用してこれを表すことができますHH:MM:SS形式。
次の画像に示すように、HH:MM:SS形式で時差が表示されます。
SQL SERVERDATEADD関数の結果を新しい列として指定する
SQL SERVER DATEADD関数を使用して、必要な日付値を追加した後、新しい列を取得できます。次のクエリでは、開始日に2日を追加し、これを新しい列として表します。
スカラーDATEADDSQL関数のサブクエリとスカラー関数
SQL SERVER DATEADD関数は、スカラーサブクエリとスカラー関数でも使用できます。次のクエリでは、Sales.ordersテーブルのLastEditedWhenの最大日付値に日数を追加します。
最初のサブクエリは数値16496を提供し、2番目のサブクエリは日付を提供します。 SQL SERVER DATEADD関数を使用して日数を追加すると、次の出力が得られます。
の数式SQL SERVERDATEADD関数
SQL SERVERDATEADD関数でも数式を使用できます。次のクエリでは、数式を使用して数値を計算し、出力を提供します。
1
2
3
|
SELECT GETDATE()AS CurrentDate、
DATEADD(month、-(12/6)、GETDATE())AS ModifiedDate;
|
ランク関数でのDATEADDの使用
ランク関数でもDATEADDSQL関数を使用できます。数値引数に使用できます。次のクエリでは、数値パラメーターと値を日付パラメーターとして使用するRow_Number()関数を確認できます。
結論
この記事では、DATEADDSQL関数のさまざまな使用法と例について説明しました。これにより、指定した日付から日付部分の値を加算または減算できます。この記事が気に入っていただければ幸いです。以下のコメントでお気軽にフィードバックをお寄せください。
- 作成者
- 最近の投稿
彼は、SQL Server Always On可用性グループに関する50部構成のシリーズで、単一のトピックに関する記事の最大の無料オンラインコレクションの1つを作成しています。 SQL Serverコミュニティへの貢献に基づいて、彼はSQLShackで2020年と2021年に継続的に名誉ある「年間最優秀著者」を含むさまざまな賞を受賞しています。
Rajは常に新しい課題に関心を持っているため、コンサルティングが必要な場合は彼の著作で取り上げられている主題についてのヘルプは、rajendra.gupta16 @ gmail.comに連絡できます。
RajendraGuptaによるすべての投稿を表示
- AWSのマイナーバージョンとメジャーバージョンのアップグレードの実行RDS SQLServer- 2021年1月29日
- AWS RDSPostgreSQLインスタンスのデプロイ-2021年1月27日
- AWSDMSを使用したオンプレミスSQLデータベースのAWSRDS SQLServerへの移行-1月25日、2021