mysql:7391
From: "Haruki Nakayama" <"Haruki Nakayama" <haruki@xxxxxxxxxx>>
Date: Mon, 31 Mar 2003 00:30:37 +0900
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]