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 :)
In reply to Re: working with year in mysql
by McDarren
in thread working with year in mysql
by mkahn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |