Hi Octavian,

One approach is to use a trigger,

mysql> set sql_mode = '';

mysql> create table temp_date(d date default null);

mysql> create trigger temp_date_bi before insert on temp_date for each row set 
new.d = if(new.d = '0000-00-00', null, new.d);

mysql> insert into temp_date(d) values('2009-13-99');

mysql> select * from temp_date;
+------+
| d    |
+------+
| NULL |
+------+
1 row in set (0.01 sec)

mysql> insert into temp_date(d) values('2009-11-19');

mysql> select * from temp_date;
+------------+
| d          |
+------------+
| NULL       |
| 2009-11-19 |
+------------+
2 rows in set (0.07 sec)

Cheers,
-Janek
CMDEV 5.0

On Fri, 2009-05-15 at 11:32 +0300, Octavian Rasnita wrote:
> Hi,
> 
> I have a table with a column like:
> 
> date date default null,
> 
> If I enter an empty string in it, the default null value is added (as it 
> should).
> 
> But if I enter an invalid date by mistake, the date 0000-00-00 date date is 
> entered instead of the default null, and this is not good.
> 
> Can I do something to force MySQL to insert a null date if the entered date 
> is an invalid one?
> 
> Thank you.
> 
> --
> Octavian
> 
> 
> 
> 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to