sql >> Databasteknik >  >> RDS >> Mysql

Hur man bearbetar 0000-00-00 datum i jdbc MySQL-fråga

Jag gillar @a_horse_with_no_name s svar, men om du inte har kontroll över anslutningen kan du ändra frågan för att returnera en null istället:

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

eller det lite mer kortfattade, men bara mysql, alternativet:

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


Var också försiktig när du ändrar hela programmets JDBC-beteende eftersom du kan bryta kod som är beroende av att sådana datum returneras - kanske använder de rs.getString(i) istället. Du måste regressionstesta alla andra frågor för att vara säker.



  1. Hur man kör en Oracle-lagrad procedur via en databaslänk

  2. SQL UPPDATERING med underfråga som refererar till samma tabell i MySQL

  3. En översikt över genererade kolumner för PostgreSQL

  4. Hur man ställer in en timeout för MySQL-fråga med C API