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.