Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment traiter la date 0000-00-00 dans la requête jdbc MySQL

J'aime @a_horse_with_no_name , cependant si vous n'avez pas le contrôle sur la connexion, vous pouvez modifier la requête pour renvoyer un null à la place :

select
    ...
    case when my_date_col = '0000-00-00' then null else my_date_col end as my_date_col,
    ...

ou l'option un peu plus laconique, mais mysql uniquement :

    if(my_date_col = '0000-00-00', null, my_date_col) as my_date_col


En outre, il est conseillé de faire preuve de prudence en modifiant le comportement JDBC de l'ensemble de l'application, car vous risquez de casser le code qui repose sur le retour de telles dates - peut-être qu'ils utilisent rs.getString(i) Au lieu. Vous devrez tester la régression de toutes les autres requêtes pour en être sûr.