SQL 日付の加算・減算 DateAdd関数

DateAdd関数の使用例サンプル

構文:DateAdd(interval, number, date)
intervalは時間間隔を表す下記の文字列式を指定します。
yyyy : 年
q : 四半期
m : 月
y : 年間通算日(間の日数)
d : 日
w : 週日
ww : 週
h : 時
n : 分
s : 秒



BackHome BackSQL Tips

サンプルソフト
■実行画面
ボタンをクリックすると、「登録日」に加算・減算した結果を表示します。
DateAdd関数の使用例

■実行結果
年: 2008/09/27 : 2009/09/27 : 2007/09/27
四半期: 2008/09/27 : 2008/12/27 : 2008/06/27
月: 2008/09/27 : 2008/10/27 : 2008/08/27
年間通算日: 2008/09/27 : 2008/09/28 : 2008/09/26
日: 2008/09/27 : 2008/09/28 : 2008/09/26
週日: 2008/09/27 : 2008/09/28 : 2008/09/26
週: 2008/09/27 : 2008/10/04 : 2008/09/20
時: 2008/09/27 : 2008/09/27 1:00:00 : 2008/09/26 23:00:00
分: 2008/09/27 : 2008/09/27 0:01:00 : 2008/09/26 23:59:00
秒: 2008/09/27 : 2008/09/27 0:00:01 : 2008/09/26 23:59:59

[コード]
Option Compare Database

Private Sub コマンド8_Click()
    Dim SQL As String
    Dim rs As Recordset
    Me!テキスト1 = Null
    '年を加算・減算
    SQL = " SELECT 登録日,DateAdd('yyyy', 1, 登録日),DateAdd('yyyy', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "年: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '四半期を加算・減算
    SQL = " SELECT 登録日,DateAdd('q', 1, 登録日),DateAdd('q', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "四半期: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '月を加算・減算
    SQL = " SELECT 登録日,DateAdd('m', 1, 登録日),DateAdd('m', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "月: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '年間通算日を加算・減算
    SQL = " SELECT 登録日,DateAdd('y', 1, 登録日),DateAdd('y', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "年間通算日: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '日を加算・減算
    SQL = " SELECT 登録日,DateAdd('d', 1, 登録日),DateAdd('d', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "日: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '週日を加算・減算
    SQL = " SELECT 登録日,DateAdd('w', 1, 登録日),DateAdd('w', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "週日: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '週を加算・減算
    SQL = " SELECT 登録日,DateAdd('ww', 1, 登録日),DateAdd('ww', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "週: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '時を加算・減算
    SQL = " SELECT 登録日,DateAdd('h', 1, 登録日),DateAdd('h', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "時: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '分を加算・減算
    SQL = " SELECT 登録日,DateAdd('n', 1, 登録日),DateAdd('n', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "分: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
    '秒を加算・減算
    SQL = " SELECT 登録日,DateAdd('s', 1, 登録日),DateAdd('s', -1, 登録日) FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Me!テキスト1 = Me!テキスト1 & "秒: " & rs(0) & "  :  " & rs(1) & "  :  " & rs(2) & vbCrLf
    Set rs = Nothing
  
End Sub

サンプルソフトのダウンロード

BackHome BackSQL Tips

Copyright(C) FeedSoft