- ベストアンサー
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年のデータだけ取得できないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
参考URLを見てもらえばわかるかと思いますが、 よく2001年問題とか言われてる現象ですね。 対策としては年の指定を4桁にすれば正常に取得できるはずです。 WHERE 年月日=#1999/03/17# WHERE 年月日=#2000/11/20# WHERE 年月日=#2001/01/10# 参考まで
その他の回答 (3)
- mnabe
- ベストアンサー率33% (427/1283)
日付の年を4桁にして検索して見て下さい。 これで解決します。 理由:AccessのWHERE句の問題の様で、年を2桁表示している場合には、以下の様な動作になるようです。 2001年の場合には、2桁で検索した場合、日付のフォーマットが、"MM/DD/YY"形式で検索される様です。 もし、どうしても2桁で検索しなければいけない場合には、2001年01月10日の場合には、01/10/01で検索して見て下さい。
お礼
おっしゃる通りaccessの日付解釈の問題でした。 回答ありがとうございました。 ところで、この問題ですが、仕事で以前の担当者の プログラムを引き継いだ直後だったので、日付を年4桁 で検索する修正は、途方も無い量になるので断念しました。 変わって別の手段を知ったのでそれを試してみたところ その方法でも解決しましたです。 方法: コントロールパネルの地域にある日付タグで 短い日付形式を、yy/mm/ddからyyyy/MM/ddに 修正する。
- Tetsuro_M
- ベストアンサー率19% (4/21)
これは巷でいわれている2001年問題というやつです。 yy/mm/ddのつもりで書いているのに、mm/dd/yy と判断されてしまい日付の判定ができなくなってしまいます。 年を4桁で指定してみてください
お礼
おっしゃる通り、2001年問題でした。 無事解決いたしました。 どうもありがとうございました。
- hyuhyupopo
- ベストアンサー率57% (4/7)
where 年月日 = #2001/01/10" ではいかがでしょうか? 01のみの場合、1901年かあるいは和暦と判断している 可能性があるようです。 だれか補足してください。
お礼
すばやい回答ありがとうございました。 原因は上でも述べられている2001年問題というものでした。
お礼
回答ありがとうございました。 参考ページまで教えて頂いて、お手数をおかけしました。