Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách xử lý ngày 0000-00-00 trong jdbc truy vấn MySQL

Tôi thích @a_horse_with_no_name là câu trả lời, tuy nhiên, nếu bạn không có quyền kiểm soát kết nối, bạn có thể thay đổi truy vấn để trả về null thay vào đó:

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

hoặc tùy chọn ngắn gọn hơn một chút nhưng chỉ dành cho mysql:

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


Ngoài ra, bạn nên thận trọng khi thay đổi toàn bộ hành vi JDBC của ứng dụng vì bạn có thể phá vỡ mã dựa trên những ngày được trả về như vậy - có lẽ chúng sử dụng rs.getString(i) thay thế. Bạn sẽ phải kiểm tra hồi quy tất cả các truy vấn khác để chắc chắn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đưa ra thời gian chờ tập lệnh đã qua khi nhập cơ sở dữ liệu

  2. Loại bỏ các bản sao trong bảng MySql lớn

  3. Tìm tất cả các cột chỉ có giá trị null, trong bảng MySQL

  4. Giới hạn kết nối cho Google Cloud SQL từ App Engine là gì và cách sử dụng lại các kết nối DB tốt nhất?

  5. SELECT COUNT (*) chậm, ngay cả với mệnh đề where