decoy
youtu****@gmail*****
2008年 7月 8日 (火) 23:34:01 JST
decoyです。 kunitsujiさん、こんばんは。 > $this->db->where("start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y-%m-%d > %H:%i:%s')"); > $this->db->where("end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y-%m-%d > %H:%i:%s')"); > $this->db->get("c_access_log"); > > これでいけますね。 上記、了解です。 やっぱりベタ書きに近い形になってしまうようですね。 // decoy ----- Original Message ----- From: "kunitsuji" <tsuji****@m-s*****> To: "decoy" <youtu****@gmail*****>; <codei****@lists*****> Sent: Tuesday, July 08, 2008 12:41 AM Subject: Re: [Codeigniter-users] SQLクエリの生成について > kunitsujiです。 > > $this->db->where("start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y-%m-%d > %H:%i:%s')"); > $this->db->where("end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y > -%m-%d %H:%i:%s')"); > $this->db->get("c_access_log"); > > これでいけますね。 > 生成されたSQLは > 0.0000 SELECT * FROM (`c_access_log`) WHERE `start_day` <= DATE_FORMAT > (CURRENT_TIMESTAMP(),'%Y-%m-%d %H:%i:%s') AND `end_day` >= DATE_FORMAT > (CURRENT_TIMESTAMP(),'%Y-%m-%d %H:%i:%s') > です。 > >>decoyです。 >> >>kunitsujiさん、こんばんは。 >>いつもいろいろとありがとうございます。 >> >>> '%Y-%m-%d %H:%i:%s'が¥がついてしまうということですよね? >> >>%Y-%m-%d %H:%i:%sの前後の'に\がついてしまう事と >>DATE_FORMAT()の前後に'がついてしまいますね。 >> >> >>> $start_day = "start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d >>> %H:%i:%s')"; >>> $this->db->where($start_day); >>> $query = $this->db->get('c_access_log_id'); >> >>やっぱり上記のような書き方にするしかないんでしょうかね? >>仮にそうならNOW()等の関数を利用した演算子での比較は >>CIのActive Recordクラスでは不可能というところでしょうか? >> >>// decoy >> >>----- Original Message ----- >>From: "kunitsuji" <tsuji****@m-s*****> >>To: <codei****@lists*****> >>Sent: Monday, July 07, 2008 11:45 AM >>Subject: Re: [Codeigniter-users]SQLクエリの生成について >> >> >>> kunitsujiです。 >>> >>> こんな感じで。OKですね。 >>> >>> $start_day = "start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d % >>> H:%i:%s')"; >>> $this->db->where($start_day); >>> $query = $this->db->get('c_access_log_id'); >>> >>> >>>> >>>>decoyさん、こんにちは。 >>>>自分active recorクラスを使わないので何とも言えませんが、 >>>>'%Y-%m-%d %H:%i:%s'が¥がついてしまうということですよね? >>>> >>>>$ymdstr = '%Y-%m-%d %H:%i:%s' >>>>として >>>>? で渡すのはむりですかね?w >>>>やってみてませんが。。。。これからやってみますw >>>> >>>> >>>>>decoyです。 >>>>> >>>>>WHERE句に >>>>>start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s') >>>>>AND end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s') >>>>>というものを使いたい場合 >>>>>Active Record クラスのwhereメソッドやget_whereメソッドに >>>>>どのように書けばクエリが正しく生成されますでしょうか。 >>>>> >>>>>1. >>>>>$this->db->get_where( >>>>> テーブル名, >>>>> array( >>>>> 'start_day <=' => "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d >>>>>%H:%i:%s')", >>>>> 'end_day =>' => "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d >>>>>%H:%i:%s')", >>>>> ), >>>>>); >>>>> >>>>>2. >>>>>$this->db->where('start_day <=', "DATE_FORMAT(CURRENT_TIMESTAMP(), >>>>>'%Y-%m-%d >>>>>%H:%i:%s')"); >>>>>$this->db->where('end_day >=', "DATE_FORMAT(CURRENT_TIMESTAMP(), >>>>>'%Y-%m-%d >>>>>%H:%i:%s')"); >>>>>$this->db->get(テーブル名); >>>>> >>>>>1や2のやり方でやった場合、下記のようになってしまい正しく生成されませんでし >>>>>た。 >>>>> >>>>> >>>>>start_day <= 'DATE_FORMAT(CURRENT_TIMESTAMP(), \'%Y-%m-%d %H:%i:%s\')' >>>>>end_day >= 'DATE_FORMAT(CURRENT_TIMESTAMP(), \'%Y-%m-%d %H:%i:%s\')' >>>>> >>>>>$this->db->query(クエリ直書き);すれば意図している結果は返ってきますが >>>>>出来るだけ避けたいと考えております。 >>>>> >>>>>以上、宜しくお願い致します。 >>>>> >>>>>_______________________________________________ >>>>>Codeigniter-users mailing list >>>>>Codei****@lists***** >>>>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>>> >>>>_______________________________________________ >>>>Codeigniter-users mailing list >>>>Codei****@lists***** >>>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>> >>> _______________________________________________ >>> Codeigniter-users mailing list >>> Codei****@lists***** >>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >> >>_______________________________________________ >>Codeigniter-users mailing list >>Codei****@lists***** >>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users