in reply to working with year in mysql
Even if I allow null values and replace all the NV instances with ""(nothing), I still get zero in that cell.
I suspect that this isn't doing what you think it is. Where MySql is concerened, "" is not the same as NULL.
Consider the following example:
mysql> create table foo (Year year(2) default null); Query OK, 0 rows affected (0.06 sec) mysql> insert into foo values (""); Query OK, 1 row affected (0.00 sec) mysql> select * from foo; +------+ | Year | +------+ | 00 | +------+ 1 row in set (0.00 sec) mysql> insert into foo values (NULL); Query OK, 1 row affected (0.01 sec) mysql> select * from foo; +------+ | Year | +------+ | 00 | | NULL | +------+ 2 rows in set (0.01 sec)
If you want to represent your NV values with NULL, then you need to explicity specify NULL when you insert. (If you are using placeholders, then I think an undef value will evaluate to NULL, but you'd have to check that).
Update: Actually (and before somebody jumps on me), that statement above isn't quite true. eg:
Of course, because NULL is the default - if you just insert without giving anything at all - you'll get NULL :)mysql> insert into foo values (); Query OK, 1 row affected (0.00 sec) mysql> select * from foo; +------+ | Year | +------+ | 00 | | NULL | | NULL | +------+
Hope this helps,
Darren :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: working with year in mysql
by bart (Canon) on Dec 16, 2005 at 08:46 UTC |