>데이터 베이스 >MySQL 튜토리얼 >JDBC에서 '0000-00-00 00:00:00' DATETIME 값을 처리하는 방법은 무엇입니까?

JDBC에서 '0000-00-00 00:00:00' DATETIME 값을 처리하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-26 01:32:09926검색

How to Handle '0000-00-00 00:00:00' DATETIME Values in JDBC?

JDBC에서 DATETIME 값 '0000-00-00 00:00:00' 처리

문제가 있는 '0000-00-00 00:00:00' DATETIME 준 널(quasi-null) 상태를 나타내는 값은 값을 검색하려고 시도할 때 종종 예외를 트리거합니다. ResultSet.getString()을 사용하여 문자열을 생성합니다. 이 문제를 해결하려면 다음 옵션을 고려하십시오.

1. CHAR로 캐스팅

데이터베이스에 나타나는 원시 DATETIME 문자열을 얻으려면 MySQL 관련 쿼리를 사용합니다:

SELECT CAST(add_date AS CHAR) AS add_date

2. JDBC URL 구성

또는 JDBC URL에 zeroDateTimeBehavior=convertToNull을 추가할 수 있습니다.

jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull

이렇게 하면 JDBC가 '0000-00-00 00:00:00을 변환하도록 구성됩니다. ' 값을 NULL로 설정하여 트리거하지 않고도 해당 값을 검색할 수 있습니다. 예외.

3. zeroDateTimeBehavior 구성 속성

Connector/J 버전 3.1 이상의 경우 zeroDateTimeBehavior 속성은 더 많은 사용자 정의를 제공합니다. 예외, ConvertToNull 또는 라운드로 설정하면 DATETIME 값이 처리되는 방식을 지정할 수 있습니다.

  • 예외: SQL 예외 발생(기본값)
  • convertToNull: NULL 반환
  • round: 날짜를 반올림합니다. 0001-01-01

이 구성 속성에 대한 자세한 내용은 MySQL 설명서를 참조하세요.

참고: MySQL Connector/J 5.1.15에서는 버그가 zeroDateTimeBehavior=convertToNull 기능에 영향을 미쳤습니다. 버그 수정에 대한 업데이트는 공식 웹사이트의 CHANGELOGS를 참조하세요.

위 내용은 JDBC에서 '0000-00-00 00:00:00' DATETIME 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.