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

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]