sql >> Database teknologi >  >> RDS >> Mysql

Sådan behandles 0000-00-00-datoen i jdbc MySQL-forespørgsel

Jeg kan godt lide @a_horse_with_no_name 's svar, men hvis du ikke har kontrol over forbindelsen, kan du ændre forespørgslen for at returnere en null i stedet:

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

eller den lidt mere kortfattede, men kun mysql, mulighed:

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


Det anbefales også at være forsigtig med at ændre hele applikationens JDBC-adfærd, da du kan bryde kode, der er afhængig af, at sådanne datoer returneres - måske bruger de rs.getString(i) i stedet. Du bliver nødt til at regressionsteste alle andre forespørgsler for at være sikker.



  1. Sådan forberedes sætninger og bindeparametre i Postgresql til C++

  2. Hvordan kan jeg bruge forberedte erklæringer i CodeIgniter

  3. Uddrag tupler med specificerede fælles værdier i en anden kolonne i SQL

  4. Beregn MD5-hash af en UTF8-streng