DateDiff関数 : Access

Access DateDiff(関数は指定した2 つの日付の差をバリアント型で返す。

差は引数により、年や月や時間などが指定できます。

BackHome BackAccess関数


■ 構文
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

■ 引数
interval (必須): 差の時間単位を表す文字列式を指定
date1, date2 (必須): 差を計算する 2 つの日付を指定
firstdayofweek (省略可): 週の始まりの曜日を表す定数を指定。省略すると日曜日になる。
firstweekofyear (省略可): 年度の第1週を表す定数を指定。省略すると、1月1日を含む週が第1週となる。

[ interval の設定値 ]
yyyy : 年
q  : 四半期
m : 月
y : 年間通算日
d : 日
w : 週日
ww : 週
h : 時
n : 分
s : 秒

■ 戻り値
日付の差がバリアント型で返ります。

■ Access実行画面

[実行手順]
1)日付1を入力
2)日付2を入力
3)取得する単位を選択
4)実行ボタンをクリック

日付1「2009/06/22 19:21:12」、日付2に1年後の「2009/06/22 19:21:12」となっています。
単位を年にし差を計算した結果、「1」となっています。
DateDiff関数で年の差を計算した結果

単位を日にし差を計算した結果、「365」となっています。
DateDiff関数で日の差を計算した結果

単位を秒にし差を計算した結果、「31536000」となっています。
DateDiff関数で秒の差を計算した結果

■ Access VBA 実行コード

Option Compare Database
Private Sub Form_Load()
    Me!テキスト0 = Format(Now, "yyyy/mm/dd hh:nn:ss")
    Me!テキスト1 = Format(DateAdd("yyyy", 1, Now), "yyyy/mm/dd hh:nn:ss")
End Sub
Private Sub コマンド18_Click()
    Dim ln As Variant
    If IsNull(Me!テキスト0) Then
        MsgBox "日付1を入力してください。"
        Me!テキスト0.SetFocus
        Exit Sub
    End If
    If IsNull(Me!テキスト1) Then
        MsgBox "日付2を入力してください。"
        Me!テキスト1.SetFocus
        Exit Sub
    End If
    'Me!テキスト0とMe!テキスト1の差を求める
    Select Case Me!フレーム2
            '年
        Case 1:
            ln = DateDiff("yyyy", Me!テキスト0, Me!テキスト1)
        '月
        Case 2:
            ln = DateDiff("m", Me!テキスト0, Me!テキスト1)
        '日
        Case 3:
            ln = DateDiff("d", Me!テキスト0, Me!テキスト1)
        '時
        Case 4:
            ln = DateDiff("h", Me!テキスト0, Me!テキスト1)
        '分
        Case 5:
            ln = DateDiff("n", Me!テキスト0, Me!テキスト1)
        '秒
        Case 7:
            ln = DateDiff("s", Me!テキスト0, Me!テキスト1)
    End Select
    Me!テキスト19 = ln
End Sub

BackHome BackAccess関数

Copyright(C) FeedSoft