• 締切済み

SQL文の初歩的な質問

はじめまして。SQL文について質問です。 以下の文で、 '2009/04/01 0:0:0'~'2009/04/21 23:59:59'の間にあるデータのうち 最も時間の古いものを取りたいのですが、エラーが出てしまいました。 ひととおり、調べたのですが、基本的すぎて分かりませんでした。 御指摘いただけるとうれしいです。 SELECT sID,KANJINAME,KANANAME,WARDNAME,subject,MAX(D_time) FROM Q_Reg1Data WHERE ((D_time >= CDate('2009/04/01 0:0:0')) AND (D_time <= CDate('2009/04/21 23:59:59'))) GROUP BY sID,KANJINAME,KANANAME,WARDNAME,subject ADODB.Recordset エラー '800a0cc1'

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

SQL ServerにCDateという関数はありません。 CONVERT(datetime,'2009/04/01 0:0:0') CAST('2009/04/01 0:0:0' AS datetime) のいずれかを使います。 ただ、日付は書式さえ正しければ暗黙変換してくれるので、以下の方法でもOKです。 (ついでにBETWEENも使えます) それから、最も「古い」ならMAXでなくMINですね。 SELECT sID,KANJINAME,KANANAME,WARDNAME,subject,MAX(D_time) FROM Q_Reg1Data WHERE D_time BETWEEN '2009/04/01 0:0:0' AND '2009/04/21 23:59:59' GROUP BY sID,KANJINAME,KANANAME,WARDNAME,subject

boojar
質問者

お礼

ありがとうございます。 SQL serverではなく、Access,sqlだったのでちょっと違ったかもですが、参考になりました。 回答とうもありがとうございました。

関連するQ&A