Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
前日の11時から当日の11時までのデータを抽出する方法
投稿日時: 17/06/12 19:02:27
投稿者: 虹

いつもお世話になっております。
 
日々前日の11時以降から当日の11時までのデータを抽出したいのですが、何か方法はありますでしょうか?
 
サンプル例としてですが、
 
年、月、日、時間、分まで入っているデータがあります。
 
20170612の11時以降から20170613の11時までのデータを抽出したいので下記の2点を抽出したいです。
 
201706120901  ⇒ 2017年6月12日9時01分
201706121109  ⇒ 2017年6月12日11時09分
201706131005  ⇒ 2017年6月13日10時05分
 
何卒宜しくお願いします。

回答
投稿日時: 17/06/13 09:38:13
投稿者: Suzu

こんにちは。
 
参考になるサイト
【DATE関数】
https://support.office.com/ja-jp/article/Date-%E9%96%A2%E6%95%B0-dd7a1f27-d957-4969-ab35-01e0bfbfed76
 
【Access クエリで抽出条件として日付を使用する例】
https://support.office.com/ja-jp/article/Access-%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%A7%E6%8A%BD%E5%87%BA%E6%9D%A1%E4%BB%B6%E3%81%A8%E3%81%97%E3%81%A6%E6%97%A5%E4%BB%98%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E4%BE%8B-aea83b3b-46eb-43dd-8689-5fc961f21762
上記は日付時刻型フィールドの抽出条件です。
 
今回のフィールドは日付時刻型ではありませんよね。のデータ型は何になりますか?
 
文字列型の場合
  先の日付時刻型の場合の式に更に、FORMAT関数を使い引数に yyyymmddhhnn を渡せば
  文字列型の 希望の書式になります。
 
数値型の場合には
  文字列型の場合の結果に対し更に CDEC関数を使用し 数値型に変換します。

回答
投稿日時: 17/06/13 11:19:48
投稿者: AccessKid

Format(
       Format(フィールド名,
       "@@@@/@@/@@ @@:@@"),
       "yyyy/mm/dd hh:nn")
       Between Date()-1 & " 11:00" And Date() & " 11:00"
 
では?

回答
投稿日時: 17/06/13 21:29:49
投稿者: hatena
投稿者のウェブサイトに移動

フィールドを式で変換するとインデックスが無効になるので、
データ数が多い場合は、フィールドはそのままにして、抽出条件を工夫した方がいいですね。
 
 
フィールド: フィールド名
 
抽出条件: Between Format(Date()-1,"yyyymmdd") & "1100" AND Format(Date()-1,"yyyymmdd") & "1059"
 
 
フィールドのデータ型はテキスト型の前提です。

トピックに返信