文書番号: 826766 - 最終更新日: 2007年6月14日 - リビジョン: 3.1

Access で関数や演算子を使用して日付を変更する方法

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。
この資料は、Microsoft Access データベース (.mdb) ファイルまたは Microsoft Access データベース (.accdb) ファイルのいずれか、および Microsoft Access プロジェクト (.adp) ファイルについて記述されたものです。

難易度 : 中。基本的なマクロ、コーディング、相互運用性に関する知識が必要です。
すべて展開する | すべて折りたたむ

概要

この資料では、Microsoft Office Access 2007、Microsoft Office Access 2003、および Microsoft Access 2002 で利用できる関数や演算子について、サンプル クエリを使用して説明します。関数や演算子を使用して、日付/時間型の値を変更できます。日付の値を変更するために使用するサンプル クエリでは、Northwind サンプル データベース内のテーブルを使用しています。

: Access 2007 の Northwind サンプル データベース (ノースウィンド 2007) は、以前のバージョンの Northwind サンプル データベースと同じフィールドを使用していません。Access 2007 の Northwind サンプル データベースに含まれる "社員" テーブルには、"入社日" および "誕生日" のフィールドがありません。"社員コード" フィールドが "ID" フィールドに名前が変更されており、"氏名" フィールドが "名" フィールドと "姓" フィールドに分割されています。

詳細

Access では、日付/時間型のフィールドを検証または変更する演算子および関数が提供されています。以下のサンプル クエリでは、Access で利用できる日付操作、演算関数、および比較演算子を使用しています。

マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。
  • Date() 関数、Now() 関数、Format() 関数

    SELECT Date(), Now();
    Date() 関数は、短い形式 (Short Date) で現在の日付を返します。Now() 関数は、現在の日付と現在の時刻を返します。
    SELECT Format(Now(), "dd mmmm yyyy");
    日付の値を指定して Format() 関数を使用すると、日付に使用される形式を指定できます。このサンプル クエリでは、長い形式 (Long Date) で現在の日付が返されます (たとえば、01 Dec 2003)。
  • Day() 関数、WeekDay() 関数、Month() 関数、および Year() 関数

    SELECT 入社日, Day(入社日) AS Day,
    Weekday(入社日) AS WeekDay,
    Month(入社日) AS Month, Year(入社日) AS Year 
    FROM 社員;
    このクエリでは、"社員" テーブルから、各社員の入社日 (年月日)、入社の日、入社の曜日、入社の月、および入社の年が返されます。WeekDay() 関数では、曜日を表す数値が返されることに注意してください。
  • DatePart() 関数

    SELECT *  FROM 社員 
    WHERE DatePart("yyyy", 誕生日) < 1960;
    このクエリでは、"社員" テーブルから、1960 年より前に生まれたすべての社員の情報が返されます。DatePart() 関数を使用すると、指定した日付の要素を取り出すことができます。
  • DateDiff() 関数

    SELECT 社員コード, 氏名, 誕生日,
    DateDiff("yyyy", 誕生日, Date()) AS Age
    FROM 社員;
    このクエリでは、"社員" テーブルから、各社員の社員コード、名前、誕生日、年齢が返されます。DateDiff() 関数は、指定された 2 つの日付の違いまたは時間差を (日、月、年、または時、分、秒などの時間単位として) 返します。
  • DateAdd() 関数

    SELECT 社員コード, 氏名, 入社日,
    DateAdd("yyyy", 10, 入社日)
    FROM 社員;
    このクエリでは、"社員" テーブルから、社員コード、名前、入社日、勤続 10 年となる日付が返されます。DateAdd() 関数は、日、月、または年の単位で指定した時間を日付に加えて、結果の値を返します。

    日付値に数値を直接加えることができます。以下の例では、この操作により、日付を 1 日増やしています。
    SELECT Date() + 1 ;
    このクエリでは、現在の日付に 1 日を加えて、結果の日付の値を返しています。
  • DateValue() 関数

    SELECT DateValue("20 Nov 2003") AS ValidDate;
    DateValue() 関数は、入力された文字列が有効な日付であるかどうかを確認します。入力された文字列が有効な日付であると認識された場合、短い形式で日付が返されます。入力された文字列が有効な日付であると認識されない場合、ステートメント "抽出条件でデータ型が一致しません。" が返されます。DateValue() 関数は、長い形式 (mm dd yyyy、dd mm yyyy、dd mmm yyyy、dd mmm yyyy hh:mm:ss) など、さまざまな日付形式を認識します。
  • DateSerial() 関数

    SELECT DateSerial( 2003,  03, 1-1);
    DateSerial() 関数は、年、月、日の指定された入力パラメータの日付値を返します。入力パラメータには、算術演算を使用する式も指定できます。DateSerial() 関数は、結果の日付値を返す前に、入力パラメータ内の式を評価します。

    このサンプル クエリでは、2003 年 2 月の最後の日が返されます。日を表す最後の入力パラメータでは、値が 1 の日から、1 を引いています。結果として (3 月 1 日の前日となり)、月のパラメータは 2 と評価されます。
  • 日付値に対する比較演算子の使用

    以下の比較演算子を使用して、式やクエリの中で日付値を比較できます。
    • < (小なり)
    • > (大なり)
    • <= (以下)
    • >= (以上)
    • <> (等しくない)
    SELECT * FROM 社員
    WHERE 入社日 >= DateValue(" 10/01/1993")
    AND 入社日 <= DateValue("12/31/1993");
    このクエリでは、比較演算子 >= と <= を使用して、社員の入社日が指定された期間内であるかどうかが確認されます。このクエリでは、1993 年の第 4 四半期に入社したすべての社員のレコードが取り出されます。
    SELECT * FROM 社員
    WHERE 入社日 <> Date();
    このクエリでは、比較演算子 <> を使用して、入社日が現在の日ではないすべての社員のレコードが取り出されます。
  • WeekdayName() 関数

    SELECT WeekdayName(1, False, 1) AS FirstWeekDayName;
    WeekdayName() 関数は、最初のパラメータの指定に応じて、曜日を示す文字列を返します。返される曜日の文字列は、3 番目のパラメータによって異なります。このパラメータでは、週の最初の曜日を設定します。2 番目のパラメータに False を設定すると、曜日名が短縮されません。

    このサンプル クエリでは、週の最初の曜日として "日曜日" が返されます。
  • MonthName() 関数

    SELECT MonthName(1);
    MonthName() 関数は、月を表す 1 〜 12 の数字で指定された月の名前を返します。以下のクエリのように、入力パラメータに式を指定することもできます。
    SELECT MonthName( DatePart("m", Date()) );
    このクエリでは、現在の月の名前が返されます。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290178? (http://support.microsoft.com/kb/290178/ ) Microsoft Access で複数の条件を使用するパラメータ クエリを作成する方法
290190? (http://support.microsoft.com/kb/290190/ ) [ACC2002] 年齢 (年数と月数) を計算する 2 つの関数の作成方法

この資料は以下の製品について記述したものです。
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
キーワード:?
kbdownload kbfunctions kbdatetime kbvalidation kbquery kbdatabase kbinfo KB826766
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"