2011-11-09 12 views
1

2つの日付で操作(この場合はDATEDIFF())を実行する必要があります。しかし、それらの日付の少なくとも1つは不完全です。例えばMYSQLの不完全な日付の操作

:DATEDIF( '2010-01-00'、 '2010-02-01')OR DATEDIF( '2010-01-00'、 '2010-02-00')はNULL

が返され

確かに、http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediffのマニュアルでは、DATEDIFはすべての日付の算術関数として、不完全な日付を扱うことはできないと言います。

私はできませんが、私のデータベースを変更したくないので、私は本当にこの操作を行う必要があります、それを行う方法を知っていますか?

私の実際の問題はこのDATEDIFを実行することでも一般的に尋ねます。

+2

で00を不完全な日付をチェックして交換するために使用できますか?どのデータ型ですか? –

+0

私たちは1日を持たないので、それらは不完全です。 フィールドのタイプは、mysqlの日付です。 – dyesdyes

+1

年と月がありますが、日がない場合は、「2日間の違い」の意味は何ですか? – Toomai

答えて

1

あなたは、IFとCONCATは、なぜ彼らが最初の場所で不完全である01

IF (isnull(CONCAT(v6.title,v7.title,v8.title)), IF (isnull(CONCAT(v7.title,v8.title)), v8.title, 
     CONCAT(v7.title,\'.\',v8.title)), 
     CONCAT(v6.title,\'.\',v7.title,\'.\',v8.title)) AS "Datum", 
     IF (isnull(CONCAT(v9.title,v10.title)) & isnull(CONCAT(v11.title, v12.title)), v13.title, 
        IF (isnull(CONCAT(v9.title,v10.title)) & isnull(v13.title), CONCAT(v11.title,\'-\', v12.title), 
        IF (isnull(CONCAT(v11.title,v12.title)) & isnull(v13.title), CONCAT(v9.title,\':\', v10.title, \' Uhr\'), 
        "Hello World"))) AS "Uhrzeit", 
+0

シンプルでありながら私はそれについて考えなかった。 ありがとう – dyesdyes