mysql:7559
From: SAITO Masaru <SAITO Masaru <daisaito@xxxxxxxxxx>>
Date: Sat, 19 Apr 2003 17:34:54 +0900
Subject: [mysql 07559] Re: timestamp 型で、 between の利用は可か
齋藤@横浜です。 202003/04/19 13:00:16 ごろ ihandman <ihandman@xxxxxxxxxx> さんは以下のように書きました > 初めまして。 > 下記のオリジナルメッセージ中、★で始まる行が回答のつもりです。 > > ---------- ORIGINAL MESSAGE ---------- > On Sat, 19 Apr 2003 02:26:55 +0900 > tamura <zai91210@xxxxxxxxxx> wrote: > > 田村です、毎度。いつも、お世話になります。 > > > > 環境は、 > > OS :Windows2000Pro > > MySQL : MySQL3.23.51 > > PHP : php-4.2.2-Win32 > > です。 > > > > PHPの中で使うSQLについて教えてください。 > > > > t_order_sales_main テーブル(売上伝票)の構成: > > order_sales_id int(11) > > sales_date timestamp(14) > > ★なぜ(14)? 不要では? 14の場合はあえて指定する必要は無いかもしれないですが、 明示的に指定しても害は無いと思います。 http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Reference.html#DATETIME > > select * from t_order_sales_main where sales_date between $ymd1 and > > $ymd2 > > > > のようなものを、実現させたいのです。 > > sales_date( timestamp )を、date化できればと考えたのですが、うまくいき > > ません。 > > > > よろしくお願いいたします。 > > > ★between and句はDATEだけに適用されるものではありません > ★ので、between and句を使うためにdate化する必要はないの > ★では? 単に $ymd1,$ymd2は普通の文字列で、sales_dateが timestamp型で 型が違っているからbetweenの比較がうまくいかないと言っているん だと思います。解決策としては、下記のように型を合わせて比較 すればうまくいくと思います。 1) sales_date between TO_DAYS($ymd1) and TO_DAYS($ymd2) 2) DATE_FORMAT(sales_date,'%Y%m%d%H%i%s') between '$ymd1' and '$ymd2' # DATE_FORMATの第2引数の内容は$ymd1,$ymd2の中身に合わせる必要があります。 > また、TIMESTAMP型とDATE型は同じものではないです > ★か? 上記のURLを参照すればわかりますが、目的などが違いますので、 同じではないと思います。 --- SAITO Masaru <daisaito@xxxxxxxxxx>
7557 2003-04-19 02:26 [tamura <zai91210@xxx] timestamp 型で、 between の利用は可か 7558 2003-04-19 13:00 ┗[ihandman <ihandman@x] -> 7559 2003-04-19 17:34 ┗[SAITO Masaru <daisai] 7560 2003-04-19 20:22 ┣[ihandman <ihandman@x] 7563 2003-04-20 00:19 ┣[とみたまさひろ <tomm] 7565 2003-04-20 01:36 ┃┗[tamura <zai91210@xxx] 7564 2003-04-20 01:24 ┗[tamura <zai91210@xxx] 7571 2003-04-21 01:02 ┗[tamura <zai91210@xxx] Re: timestamp 型で、 between の利用は可か(自己レス)