• ベストアンサー

access97に2001年のデータ検索

アクセス初心者のyaschiです。 よろしくお願いいたします。 テーブル入力されているデータを日付を条件に 取得しようと思い、以下のようなSELECT文を作りました。 SELECT * FROM AAA WHERE 年月日=#99/03/17#; このSELECT文の場合、きちんとデータを取得できるのですが、 2001年1月10日のデータを取得しようとしてWHERE句を 以下のように変えたところできませんでした。 WHERE 年月日=#01/01/10#; 2000年の問題かと思い2000年11月20日のデータを取得しようと WHERE句を以下のように変えたら今度は取得できました。 WHERE 年月日=#00/11/20#; なぜ、2001年のデータだけ取得できないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hequil
  • ベストアンサー率65% (242/372)
回答No.3

参考URLを見てもらえばわかるかと思いますが、 よく2001年問題とか言われてる現象ですね。 対策としては年の指定を4桁にすれば正常に取得できるはずです。 WHERE 年月日=#1999/03/17# WHERE 年月日=#2000/11/20# WHERE 年月日=#2001/01/10# 参考まで

参考URL:
http://www.asia.microsoft.com/japan/support/kb/articles/J047/9/49.htm
yaschi
質問者

お礼

回答ありがとうございました。 参考ページまで教えて頂いて、お手数をおかけしました。

その他の回答 (3)

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.4

日付の年を4桁にして検索して見て下さい。 これで解決します。  理由:AccessのWHERE句の問題の様で、年を2桁表示している場合には、以下の様な動作になるようです。  2001年の場合には、2桁で検索した場合、日付のフォーマットが、"MM/DD/YY"形式で検索される様です。  もし、どうしても2桁で検索しなければいけない場合には、2001年01月10日の場合には、01/10/01で検索して見て下さい。

yaschi
質問者

お礼

おっしゃる通りaccessの日付解釈の問題でした。 回答ありがとうございました。 ところで、この問題ですが、仕事で以前の担当者の プログラムを引き継いだ直後だったので、日付を年4桁 で検索する修正は、途方も無い量になるので断念しました。 変わって別の手段を知ったのでそれを試してみたところ その方法でも解決しましたです。 方法: コントロールパネルの地域にある日付タグで 短い日付形式を、yy/mm/ddからyyyy/MM/ddに 修正する。

  • Tetsuro_M
  • ベストアンサー率19% (4/21)
回答No.2

これは巷でいわれている2001年問題というやつです。 yy/mm/ddのつもりで書いているのに、mm/dd/yy と判断されてしまい日付の判定ができなくなってしまいます。 年を4桁で指定してみてください

yaschi
質問者

お礼

おっしゃる通り、2001年問題でした。 無事解決いたしました。 どうもありがとうございました。

回答No.1

where 年月日 = #2001/01/10" ではいかがでしょうか? 01のみの場合、1901年かあるいは和暦と判断している 可能性があるようです。 だれか補足してください。    

yaschi
質問者

お礼

すばやい回答ありがとうございました。 原因は上でも述べられている2001年問題というものでした。

関連するQ&A