メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

日付/時刻拡張データ型は日付と時刻の情報を格納し、日付/時刻データ型に似ていますが、日付範囲が広く、小数点以下の精度が高く、SQL Server の datetime2 日付型と互換性があります。 Access データを SQL Server にインポートまたはリンクすると、Access の日付/時刻拡張型フィールドを SQL Server の datetime2 列に一貫してマッピングできます。 詳細については、「datetime2 (Transact-SQL)」を参照してください。

拡張した日付/時刻範囲

警告    Access で式を作成し、日付/時刻拡張データ型に基づいて日付/時刻関数を使用すると、計算の精度が失われるか、結果に他の問題が発生する可能性があります。 Microsoft はこの問題を認識しており、今後のリリースでは、式と関数をより適切にサポートする予定です。 回避策として、パススルー クエリを作成して、同等の SQL Server 式と日付/時刻関数を使用できます。 詳細については、「Access SQL と SQL Server TSQL の比較」を参照してください。

この記事の内容

日付/時刻データ型と日付/時刻拡張データ型を比較する

日付/時刻拡張データ型の使用

下位互換性に関する考慮事項

VBA で文字列として日付/時刻拡張データ型を使用する

日付/時刻データ型と日付/時刻拡張データ型を比較する

次の表は、2 つのデータ型の重要な違いをまとめたものです。

属性

日付/時刻型

日付/時刻拡張型

最小値

100-01-01 00:00:00

0001-01-01 00:00:00

最大値

9999-12-31 23:59:59.999

9999-12-31 23:59:59.9999999

精度

0.001 秒

1 ナノ秒

サイズ

倍精度浮動小数点

42 バイトのエンコードされた文字列

ページの先頭へ

日付/時刻拡張データ型の使用

以下の情報は、使用に関する重要な考慮事項について説明しています。

[テーブル デザイン] ビュー    より大きなデータ範囲とより高い精度を利用するために、Access テーブルにフィールドを追加できます。 [テーブル デザイン] ビューで、日付/時刻データ型を日付/時刻拡張データ型に変換することもできます。 このデータ型を主キー フィールドとして使用することもできます。 詳細については、「テーブルを作成してフィードを追加する」を参照してください。

日付と時刻を入力する   日付と時刻の値の入力は、小数ナノ秒も入力できることを除いて、日付/時刻データ型と同様です。 次に例を示します。

  • 入力形式: mm/dd/yyyy hh:mm:ss.nnnnnnn

  • 例:06/15/1215 09:25:3.234

7 桁を超える小数ナノ秒がある場合、それらは 7 桁に丸められます。 小数ナノ秒の表示を制御するには、テーブルを開き、リボンで [フィールド] を選択し、[書式設定] グループで、[小数点を増やす] ボタンの画像 または [小数点を減らす] ボタン イメージ を選択します。

書式設定    日付/時刻データ型と日付/時刻拡張データ型はどちらも、一般的な形式の日付日付 (長い形式)ある程度長い形式の日付日付 (短い形式)時刻 (長い形式)ある程度長い形式の時間時刻 (短い形式) の同様の標準書式設定文字列を使用し、いずれもカスタム書式設定をサポートします。 日付/時刻拡張データ型の場合、時間ベースの標準形式は、ナノ秒の小数精度もサポートします。 日付/時刻拡張データ型の書式設定は、デフォルトで一般的な形式の日付時刻 (長い形式)の書式設定になり、Windows の地域設定で指定されるオプションに従います。 小数点以下の桁数プロパティを使用して、小数点の右側の桁数 (1 ~ 7) を指定することにより、小数精度の書式設定を制御することもできます。

リンクとインポート    SQL Server の datetime2 データ型など、対応するデータ型を使ってデータベースにリンクしたり、データベースからインポートしたりすることもできます。 SQL Server バージョン 2014 以降のデータベースがサポートされています。 日付/時刻拡張データ型では、Microsoft ODBC Driver for SQL Server 11 以降を使用する必要があります。 Microsoft ODBC Driver 13.1 for SQL Server の使用をお勧めします。 OLE DB の使用もサポートされています。 詳細については、「ODBC の日付および時刻の改善のためのデータ型サポート」および「拡張された日付と時刻の機能 (OLE DB) の使用」を参照してください。

フォームとレポート    日付/時刻拡張データ型をフォームまたはレポートに追加できます。 フォームでは、日付ピッカーと定型入力を使用して、より広い範囲の日付を入力できますが、ナノ秒の小数部精度は入力できません。

式のサポート   日付/時刻拡張データ型は、SQL 集計関数と式の評価をサポートします。 たとえば、LoggedDateTime を日付/時刻拡張データ型のフィールドとして使用します。

タスク

使用例

結果

最小値の検索

Min(LoggedDateTime)

範囲内で最も早い日付と時刻

月を抽出する

Month(LoggedDateTime)

月の名前 (例: 1 月)

1 日を加える

[LoggedDateTime]+1

火曜日は水曜日になります

ページの先頭へ

下位互換性に関する考慮事項

日付/時刻拡張データ型は、以前のバージョンの Microsoft Access と互換性がありません。 型がローカル Access テーブル内で使用されている場合、この機能を含まない Access のバージョンはデータベースを開くことができません。

[現在のデータベース アクセス] オプション [リンクされたテーブル/lmported テーブルの日付/時刻拡張データ型をサポートする] オプションを使用して、操作をリンクおよびインポートするための日付/時刻拡張データ型を有効または無効にすることができます。 詳細については、「カレント データベースのユーザー オプションを設定する」を参照してください。

ページの先頭へ

VBA で文字列として日付/時刻拡張データ型を使用する

次の VBA の例では、DAO メソッドを使用して、次の表に基づいて日時の拡張データ型を表示、入力、評価します。

ID

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

テーブル名:    DTETable
ID データ型:   オートナンバー
DTEData データ型:   日付/時刻拡張型
DTData データ型:   日付/時刻型

例:日付と時刻を表示する

次の例では、日付と時刻を表示します。 使用される形式は、24時間制の mm/dd/yyyy hh: mm: ss です。 書式設定はカスタマイズできません。

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
    Debug.Print rs!DTETable
    rs.MoveNext
Loop

結果    Access は次のように表示します。01/01/0002 01:01:03.1234567。

例:日付と時刻を入力する

次の例では、文字列形式を使用して日付と時刻を入力します。 すべての標準の日付と時刻の形式がサポートされています。

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
    .AddNew
    ![DTEData] = "1/1/9999 1:1:1.0123 AM"
    ![DTData] = #1/1/2001#
    .Update
End With

結果    Access は新しい行 (ID = 2) を追加します、

ID

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

2

1/1/9999 1:01:01.0123000 AM

1/1/2001

例:クエリ式を評価する

次の例では、Day 関数を使用して、日付および時刻フィールドから日数を抽出します。

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
    Debug.Print "The day of the month is: "&rs!day
    rs.MoveNext
Loop

結果    Access は次のように表示します。

月の日は次のとおりです。1
月の日は次のとおりです。1

ページの先頭へ

関連項目

データ型とフィールド プロパティの概要

日付と時刻のフィールドを書式設定する

日付と時刻のフィールドを作成または削除する

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×