本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC2]日付/時刻型データの抽出条件の設定方法

文書番号: 403027

最終更新日: 2003/11/10


この資料は以下の製品について記述したものです。

概要

日付/時刻型 フィールドをもつテーブルから特定の期間、特定の年や月などでデータを抽出したいときには、Between ... and 演算子や 日付の関数 ( DatePart , Year , Month , Day 等) を使って抽出条件を設定します。
ここでは、クエリーで日付/時刻型フィールドに抽出条件を設定し、データを抽出する方法を紹介します。

手順

サンプルデータベース NWIND.MDB の [社員] テーブルを元にして、クエリーに抽出条件を設定しデータを抽出します。
  1. [社員] テーブルを元にして、クエリーを新規に作成します。
  2. クエリーのデザインビューで、QBE グリッドに必要なフィールドを設定します。
    ここでは、[社員コード]、[氏名]、[誕生日] フィールドを QBE グリッドに設定します。
    [GRAPHIC: ]

■ 指定した年のデータを抽出する方法

  1. クエリーのデザインビューで QBE グリッドの空いている列に、年を表示する式と抽出条件を設定します。
            フィールド:= Year( [誕生日] )
            表示      : (チェックボックスのチェックを外します。)
            抽出条件  : [ 抽出年 ]
    
  2. [クエリー] - [パラメータ] コマンドを選択し、抽出条件を入力するパラメータを指定します。
            変数の定義    データ型
            ------------  ----------
            抽出年        整数型
    
  3. クエリーを実行します。[クエリー] - [実行] コマンドを選択するか、ツールバーの<実行> ボタンをクリックします。
  4. [パラメータの入力] ダイアログボックスが表示されます。抽出する年 (例: 1968) を入力し [OK] ボタンをクリックします。

解説

Year 関数は、日付のデータの年を表わす整数値を返します。Month 関数は、月を表わす整数値 (1 ~ 12) を返します。Day 関数は、日を表わす整数値 (1 ~ 31) を返します。Month , Day 関数を QBE グリッドの [フィールド:] に設定することにより、指定月や指定日のデータを抽出することができます。
ここでは、抽出条件をパラメータ入力して抽出する方法を紹介しましたが、QBE グリッドの [抽出条件:] に、年を表わす数値を直接設定することもできます。その場合[クエリー] - [パラメータ] コマンドでパラメータの指定は必要ありません。

■ 指定した年月のデータを抽出する方法

  1. クエリーのデザインビューで QBE グリッドの空いている列に、年月を表示する式と抽出条件を設定します。
         フィールド:= Format ( [誕生日] , "yyyy/mm" )
         表示      : (チェックボックスのチェックを外します。)
         抽出条件  : [ 抽出年月 ]
    
  2. [クエリー] - [パラメータ] コマンドを選択し、抽出条件を入力するパラメータを指定します。
            変数の定義    データ型
            ------------  ----------
            抽出年月      テキスト型
    
  3. クエリーを実行します。[クエリー] - [実行] コマンドを選択するか、ツールバーの<実行> ボタンをクリックします。
  4. [パラメータの入力] ダイアログボックスが表示されます。抽出する年月を入力し[OK] ボタンをクリックします。パラメータの年月は、yyyy/mm (4 桁の年、/半角のスラッシュ、2 桁の月) の書式で入力してください。

解説

Format 関数は、指定した書式にしたがって、数値、日付、時間、文字列を表示します。ここでは、抽出条件をパラメータ入力して抽出する方法を紹介しましたが、QBE グリッドの [抽出条件:] に、年と月を表わす文字列 yyyy/mm (4 桁の年、/半角のスラッシュ、2 桁の月) の文字列 (例: "1968/03") を直接設定することもできます。その場合 [クエリー] - [パラメータ] コマンドでパラメータの指定は必要ありません。

■ 指定した期間内のデータを抽出する方法

  1. クエリーのデザインビューで QBE グリッドの [誕生日] の列に、抽出条件を設定します。
         フィールド: [誕生日]
         抽出条件  : Between [ 開始日 ] and [終了日]
    
2.[クエリー] - [パラメータ] コマンドを選択し、抽出条件を入力するパラメータを
   指定します。
        変数の定義    データ型
        ------------  ------------
        開始日        日付/時刻型
        終了日        日付/時刻型

3. クエリーを実行します。[クエリー] - [実行] コマンドを選択するか、ツールバーの
   <実行> ボタンをクリックします。

4. [開始日] を入力する [パラメータの入力] ダイアログボックスが表示されます。
   抽出する日付の開始日 (例: 1968/06/01) を入力します。 [OK] ボタンをクリック
   します。
   [開始日] を入力する [パラメータの入力] ダイアログボックスが表示されます。
   抽出する日付の終了日 (例: 1968/12/31) を入力します。 [OK] ボタンをクリック
   します。

解説

Between...And 演算子は、指定した値の範囲内にあるかどうかを評価します。
Not 論理演算子を組み合わせて、反対の条件 (範囲外) を評価することもできます。ここでは、抽出条件をパラメータ入力して抽出する方法を紹介しましたが、QBE グリッドの [抽出条件:] に、日付を直接設定することもできます。その場合[クエリー] - [パラメータ] コマンドでパラメータの指定は必要ありません。日付データを直接設定する場合は # (シャープ記号) で日付データを囲みます。(例: #1968/06/01#)

■ 指定日より特定の期間内のデータを抽出する方法

  1. クエリーのデザインビューで QBE グリッドの [誕生日] の列に、抽出条件を設定します。指定日から 90 日前までの期間のデータを抽出する条件式を紹介します。
         フィールド: [誕生日]
         抽出条件  : Between  DateAdd ( "d" , - 90, [指定日 ] ) and [指定日]
    
  2. [クエリー] - [パラメータ] コマンドを選択し、抽出条件を入力するパラメータを指定します。
            変数の定義    データ型
            ------------  ------------
            指定日        日付/時刻型
            終了日        日付/時刻型
    
  3. クエリーを実行します。[クエリー] - [実行] コマンドを選択するか、ツールバーの<実行> ボタンをクリックします。
  4. [指定日] を入力する [パラメータの入力] ダイアログボックスが表示されます。抽出する日付の指定日 (例: 1968/06/01) を入力します。 [OK] ボタンをクリックします。

解説

DateAdd 関数は、指定した期間 (年、月、日、時間) を日付/時刻データに加えたり引いたりした値を返します。

■ 偶数年のデータを抽出する方法

  1. クエリーのデザインビューで QBE グリッドの空いている列に、年が偶数か奇数を判断する式と抽出条件を設定します。
         フィールド:= Year ( [誕生日] )  Mod  2
         表示      : (チェックボックスのチェックを外します。)
         抽出条件  : 0
    
  2. クエリーを実行します。[クエリー] - [実行] コマンドを選択するか、ツールバーの<実行> ボタンをクリックします。

解説

フィールドで設定した式は、年を 2 で除算し Mod 演算子で除算の剰余を求めています Mod 演算子の戻り値が 0 であれば年が偶数になり、1 であれば年は奇数になります。
抽出条件に 1 を設定すれば、奇数年のデータが抽出できます。

Keywords: KBHOWTO KB403027
Technology: kbAccessSearch

inserted by FC2 system