[前][次][番号順一覧][スレッド一覧]

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]