mysql:10108
From: 渡邊昌之 <渡邊昌之 <mark@xxxxxxxxxx>>
Date: Fri, 10 Sep 2004 15:43:02 +0900
Subject: [mysql 10108] Re: datetime型の年月検索
渡邊と申します。 WHERE DATE_FORMAT(regDateTime, "%Y-%m-%d) = "2004-09-09" だとかなり処理が重いんじゃないかと思われます。 処理の重さという点では、 where regDateTime>='2004-09-09' and regDateTime<'2004-09-10' というのがいいんじゃないかと思います。 00:00:00は省略すると、そう解釈されるみたいなので 上記の構文で行けるはずです。 フィールドに何らかの処理をしてから比較するのは、最悪の場合すべてのレコードに 処理をしてから、比較する事になるので、レコード数が多くなると 処理が重くなる傾向に有ります。 なるべくフィールドそのものはいじらずに、直接評価できるように した方が効率がいいと思います。 他の部分の文法じゃなくて、datetimeというのはもちろんフィールド名に 書き換えたと思われますが、&&が問題ではないかと思います。 yoshiki <yoshiki@xxxxxxxxxx> wrote: > yoshikiです。 > > レス有難うございました。 > > >where datetime>='2004-09-09 00:00:00' && datetime<'2004-09-10 00:00:00' > では他の部分の文法が悪いのか動かず。 > > >SELECT * FROM jobrecords WHERE date(datetime) = "2004-09-09"; > では使用しているMYSQLがMySQL 4.0.18-standardなので動かず。 > > >LIKEでも いいのでは? > LIKEの使用方法がわからず。 > > > date関数を使えばOKではないのでしょうか? 外している? > ではシンタックスエラーで動かず。 > > 結局、これ > WHERE DATE_FORMAT(regDateTime, "%Y-%m-%d) = "2004-09-09" > > になりました。お騒がせいたしました。 > > 力になって頂いてどうも有り難うございました。 > > _______________________________________ 渡邊昌之 mark@xxxxxxxxxx ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10090 2004-09-10 02:11 [yoshiki <yoshiki@xxx] datetime型の年月検索 10091 2004-09-10 03:24 ┣[<jo@xxxxxxxxxx> ] 10096 2004-09-10 11:31 ┃┗[Hirofumi Fujiwara <f] 10098 2004-09-10 13:08 ┃ ┗[yoshiki <yoshiki@xxx] -> 10108 2004-09-10 15:43 ┃ ┗[渡邊昌之 <mark@xxxxx] 10092 2004-09-10 03:44 ┣[平松 幸治 <kouji@xxx] 10095 2004-09-10 07:26 ┣[Kazki MIURA <mi_ikza] 10111 2004-09-10 19:27 ┗[<konet218@xxxxxxxxxx] 10112 2004-09-10 19:30 ┗[<konet218@xxxxxxxxxx]