sql >> Databáze >  >> RDS >> Mysql

Jak zpracovat datum 0000-00-00 v dotazu jdbc MySQL

Líbí se mi @a_horse_with_no_name odpověď uživatele, ale pokud nemáte kontrolu nad připojením, můžete změnit dotaz tak, aby vrátil null místo toho:

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

nebo trochu stručnější, ale pouze mysql, možnost:

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


Také se doporučuje opatrnost při změně chování JDBC celé aplikace, protože můžete narušit kód, který závisí na vracení takových dat – možná používají rs.getString(i) namísto. Pro jistotu byste museli regresně otestovat všechny ostatní dotazy.



  1. Jaký má smysl NOT NULL DEFAULT ''?

  2. Co si naši zákazníci zaslouží:Představujeme podnikovou dokumentaci MariaDB

  3. System.Data.OracleClient vyžaduje klientský software Oracle verze 8.1.7 nebo vyšší

  4. Zaznamenejte každý dotaz MySQL do souboru povolením Obecného přihlášení MAMP