mysql:14276
From: HIRATSUKA Sadao <HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx>>
Date: Tue, 30 Oct 2007 15:50:05 +0900
Subject: [mysql 14276] Re: MySQL 5.0.45 (win32) NULLがあるときのdate()
平塚です。 類似バグが見当たらなかったので、 MySQL Bugsに報告しておきました。 http://bugs.mysql.com/bug.php?id=31933 time()では発生しないので、ソースを見比べてみると どうやら確かにdate()の処理がバグってる気がします。 そのうち直ると思いますが、 とりあえず今のバージョンで回避するには↓こんな感じでしょうか。 where date(ifnull(c1, '1000-01-01')) = '2007-01-01' よろしくお願いいたします。 On Tue, 30 Oct 2007 13:46:04 +0900 HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx> wrote: > 平塚です。こんにちは。 > > On Tue, 30 Oct 2007 01:56:38 +0900 > Kazuhiro Yoshida <moriq@xxxxxxxxxx> wrote: > > > datetime型のカラム (at) に NULL があるとき、 > > 条件節の date() がうまく動かないみたいです。 > > > > 再現しますでしょうか。 > > 手元にあった > ・Windows 5.0.45 > ・Linux 5.0.46 > で再現しました。 > > ◆再現する例 > mysql> create table test (c1 datetime); > Query OK, 0 rows affected (0.00 sec) > > mysql> insert into test values (null); > Query OK, 1 row affected (0.00 sec) > > mysql> select * from test where date(c1) = '2007-01-01'; > Empty set (0.00 sec) > > mysql> insert into test values ('2007-01-01 10:00:00'); > Query OK, 1 row affected (0.01 sec) > > mysql> select * from test where date(c1) = '2007-01-01'; > Empty set (0.00 sec) ★ > > mysql> select * from test; > +---------------------+ > | c1 | > +---------------------+ > | NULL | > | 2007-01-01 10:00:00 | > +---------------------+ > 2 rows in set (0.00 sec) > > > ◆再現しない例 > mysql> create table test (c1 datetime); > Query OK, 0 rows affected (0.04 sec) > > mysql> insert into test values ('2007-01-01 10:00:00'); > Query OK, 1 row affected (0.00 sec) > > mysql> insert into test values (null); > Query OK, 1 row affected (0.01 sec) > > mysql> select * from test where date(c1) = '2007-01-01'; > +---------------------+ > | c1 | > +---------------------+ > | 2007-01-01 10:00:00 | > +---------------------+ > 1 row in set (0.00 sec) > > > 条件の評価時にnullにあたるとそこでやめちゃうみたいですね。 > これはまずいですね。 > > -- > 平塚貞夫 hiratsuka.sadao@xxxxxxxxxx -- 平塚貞夫 hiratsuka.sadao@xxxxxxxxxx
14274 2007-10-30 01:56 [Kazuhiro Yoshida <mo] MySQL 5.0.45 (win32) NULLがあるときのdate() 14275 2007-10-30 13:46 ┗[HIRATSUKA Sadao <hir] -> 14276 2007-10-30 15:50 ┣[HIRATSUKA Sadao <hir] 14278 2007-10-30 16:57 ┃┗[Kazuhiro Yoshida <mo] 14279 2007-10-30 17:22 ┃ ┗[HIRATSUKA Sadao <hir] 14280 2007-10-30 17:56 ┃ ┗["tarou kawauso" <kaw] 14277 2007-10-30 16:55 ┗["Yasuda, Hiroyuki" <]