Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verarbeiten Sie das Datum 0000-00-00 in einer jdbc-MySQL-Abfrage

Ich mag @a_horse_with_no_name 's Antwort, aber wenn Sie keine Kontrolle über die Verbindung haben, können Sie die Abfrage so ändern, dass sie einen null zurückgibt stattdessen:

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

oder die etwas kürzere, aber nur mysql-Option:

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


Außerdem ist Vorsicht geboten, wenn Sie das JDBC-Verhalten der gesamten Anwendung ändern, da Sie Code beschädigen könnten, der auf der Rückgabe solcher Daten beruht - vielleicht verwenden sie rs.getString(i) stattdessen. Um sicherzugehen, müssten Sie alle anderen Abfragen einem Regressionstest unterziehen.