.NET開発者のためのブログメディア
SQL ServerのDATEDIFFの使い方【日付の差を求める】
公開日時:
SQL Serverには「Date」のような日付型が存在します。また、日付の計算において様々な便利に使える関数も用意されています。
今回は日付関数の一部を紹介していきますので、ぜひ参考にしてみてください。
- SE
- SQL Serverで日付同士の差はどのように求められるのでしょうか?テーブルとしては以下が用意されており、StartDateとEndDateの差を求めたいのですが……。
【Sampleテーブル】
行番号 | StartDate(日付型) | EndDate(日付型) |
1 | 2020-01-01 | 2020-01-31 |
2 | 2020-02-01 | 2020-02-29 |
- PL
- なるほど、日付型の列同士の差分を求めたいのですね。それでは、「DATEDIFF」について解説していきましょう。
目次
DATEDIFFの活用例
SQL Serverにて、指定された2つの日付の差を求めたい場合はDATEDIFF関数を用いることができます。差分の単位も指定することが可能なので、月日や秒単位など、必要に応じた単位で差分を求めることができます。
1
|
DATEDIFF ( datepart , startdate , enddate )
|
※「datepart」が差分の単位を表しており、日単位の場合は「day」、月単位の場合は「month」などのさまざまな単位で指定可能です。
1
2
3
|
SELECT
StartDate, EndDate, DATEDIFF(day, StartDate, EndDate) as Diff
FROM Sample
|
出力結果
行番号 | StartDate | EndDate | Diff |
1 | 2020-01-01 | 2020-01-31 | 30 |
2 | 2020-02-01 | 2020-02-29 | 28 |
→「StarDate」と「EndDate」の差分(day:日単位)が「Diff」に出力されます。
DATEADDを用いた例
SQL Serverでは、他にもさまざまな日付関数が備わっています。例えば、指定した日付に任意の値を加算したい場合は「DATEADD」関数を用いることができます。
1
|
DATEADD (datepart , number , date )
|
※「datepart」は前述と同じく、差分の単位を指定します。
1
2
3
|
SELECT
StartDate, DATEADD(month, 1, StartDate) as AddDate
FROM Sample
|
出力結果
行番号 | StartDate | AddDate |
1 | 2020-01-01 | 2020-02-01 |
2 | 2020-02-01 | 2020-03-01 |
→「StartDate」に1カ月加算した日付が「AddDate」に出力されます。
- SE
- 解説ありがとうございます。DATEDIFF関数を使用して日付同士の差を求めることができそうです。
- PL
- そうですね。他にもさまざまな日付関数が用意されているので、この機会に勉強してみてくださいね。
日付型を扱う際に使える関数
今回はSQL Serverについて、日付関数の一部を紹介しました。
データ上は日付を文字列型として保存するケースもあるかと思いますが、その際はまず日付型に変換することも忘れないようにしましょう。DATEDIFF関数をぜひこれから使ってみてください。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)