Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przetworzyć datę 0000-00-00 w zapytaniu jdbc MySQL?

Lubię @a_horse_with_no_name , jednak jeśli nie masz kontroli nad połączeniem, możesz zmienić zapytanie, aby zwracało null zamiast tego:

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

lub nieco bardziej zwięzła, ale tylko w mysql, opcja:

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


Zaleca się również ostrożność przy zmianie zachowania JDBC całej aplikacji, ponieważ możesz złamać kod, który opiera się na zwracaniu takich dat — być może używają one rs.getString(i) zamiast. Aby się upewnić, musiałbyś przetestować regresję wszystkich innych zapytań.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyznaj użytkownikowi uprawnienia do wyświetlania tylko widoku MySQL i niczego więcej

  2. MySQL konwertuje moje wartości sygnatury czasowej na 0000-00-00

  3. Jak wygenerować unikalny identyfikator w MySQL?

  4. Nie można usunąć klucza obcego w MySQL

  5. sortowanie według wysokiej-niskiej ceny z danymi mysql