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

mysql:7392

From: "Hisashi Chinami" <"Hisashi Chinami" <chinami@xxxxxxxxxx>>
Date: Mon, 31 Mar 2003 00:57:39 +0900
Subject: [mysql 07392] Re: 日付の計算

NAKASEさん
NAKAYAMAさん

ありがとございました。
おかげさまでできました。
今までIFとか使ったことなかったずぶの素人なんで
また良い勉強になりました。

お返事頂くまでにこんなのをこねくり回して作ってました(恥笑)

least(TO_DAYS(CURDATE())-TO_DAYS(startdate),abs(TO_DAYS(enddate)-TO_DAYS(sta
rtdate)))

                      因 寿



----- Original Message -----
From: "Haruki Nakayama" <haruki@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Monday, March 31, 2003 12:30 AM
Subject: [mysql 07391] Re: 日付の計算


> 中山です。
>
> > お送り頂いたselect文だと、日付のデータが入っていない
> > レコードに対しての計算ができないかと思うのですが。
> > 日付のデータが入っていないレコードに対しては
> > 今日の日付として計算したいのです。
> すみません。見落としてました。
>
> こういうときは…どうなんでしょう??
> IFを使うのがいいんでしょうかね。
>
> 値が入ってないということは、内部的に0(=0000-00-00)ということでしょうか?
> それともNULL?
> まあどちらにせよ条件部分を変えるだけだと思うので、0の場合でやって見ます。
>
> そうするとSQLは以下のようになると思います。
> (一応startとend両方からの時に対応してみました。)
>
> SELECT
>     `id`,
>     IF(`startdate` = 0, CURDATE(), `startdate`) AS `stdate`,
>     IF(`enddate` = 0, CURDATE(), `enddate`) AS `eddate`,
>     TO_DAYS(IF(`enddate` = 0, CURDATE(), `enddate`)) -
> TO_DAYS(IF(`startdate` = 0, CURDATE(), `startdate`)) AS `diff`
> FROM `tableA`
>
> 今度はちゃんと実行もして確認してみたので大丈夫だと思います。
> _____________________________________________________
>
>   haruki@xxxxxxxxxx
>   http://clef.s8.xrea.com/
>   NAKAYAMA Haruki
> _____________________________________________________
>
>
>
>


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

      7387 2003-03-30 23:27 ["Hisashi Chinami" <c] 日付の計算                              
      7388 2003-03-30 23:47 ┗["Haruki Nakayama" <h]                                       
      7389 2003-03-30 23:58  ┗["Hisashi Chinami" <c]                                     
      7390 2003-03-31 00:32   ┣[Nakase Hiroaki <h_na]                                   
      7391 2003-03-31 00:30   ┗["Haruki Nakayama" <h]                                   
->    7392 2003-03-31 00:57    ┗["Hisashi Chinami" <c]