mysql:7564
From: tamura <tamura <zai91210@xxxxxxxxxx>>
Date: Sun, 20 Apr 2003 01:24:55 +0900
Subject: [mysql 07564] Re: timestamp 型で、 between の利用は可か
田村です、毎度。 ihandmanさん、齋藤@横浜さんありがとうございます。 ひとつ(後述)を除いて、うまく出来ました(感謝)。 <INPUT type="text" name="year1" size="4" value="<?php echo $year ?>">年 <INPUT type="text" name="month1" size="2" value="<?php echo $month ?>">月 <INPUT type="text" name="day1" size="2" value="<?php echo $day ?>">日 〜 <INPUT type="text" name="year2" size="4" value="<?php echo $year ?>">年 <INPUT type="text" name="month2" size="2" value="<?php echo $month ?>">月 <INPUT type="text" name="day2" size="2" value="<?php echo $day ?>">日 から、$ymd1、$ymd2を作っています。 > > 単に $ymd1,$ymd2は普通の文字列で、sales_dateが timestamp型で > 型が違っているからbetweenの比較がうまくいかないと言っているん > だと思います。解決策としては、下記のように型を合わせて比較 > すればうまくいくと思います。 はい、まず、すべてtimestamp型にそろえて $ymd1=$year1.$month1.$day1."000000"; $ymd2=$year2.$month2.$day2."235959"; sales_date between $date1 and $date2; で、うまくいきました。 順序が逆になりますが、 > > 2) DATE_FORMAT(sales_date,'%Y%m%d%H%i%s') between '$ymd1' and '$ymd2' も、 $ymd1=$year1."/".$month1."/".$day1; $ymd2=$year2."/".$month2."/".$day2; DATE_FORMAT(sales_date,'%Y/%m/%d') between '$ymd1' and '$ymd2'; で、成功しました。 しかし、 > 1) sales_date between TO_DAYS($ymd1) and TO_DAYS($ymd2) の方法は、 $ymd1=$year1.$month1.$day1."000000"; $ymd2=$year2.$month2.$day2."235959"; や、 $ymd1=$year1."/".$month1."/".$day1; $ymd2=$year2."/".$month2."/".$day2; など試しましたが sales_date between TO_DAYS($ymd1) and TO_DAYS($ymd2) が、うまくいきません。TO_DAYS()関数が理解できません。 もう少し、よろしくご教授お願いいたします。 -- tamura <zai91210@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 の利用は可か(自己レス)