Database

[MySQL] NOT NULL 날짜 데이터 조회 시 NULL로 보이는 경우

비번변경 2023. 7. 31. 20:02

현상

다음과 같이 정의된 테이블이 있다고 하자. 

CREATE TABLE test (
  id int NOT NULL,
  diagnosis_date datetime NOT NULL DEFAULT current_timestamp,
  PRIMARY KEY (id, diagnosis_date)
);

스키마에 의하면 diagnosis_date가 NOT NULL인데 데이터를 조회하면 아래와 같이 NULL로 세팅된 데이터가 존재했다.

SELECT diagnosis_date
FROM test
WHERE diagnosis_date IS NULL;

 

 

원인

사용하고 있는 Tool이 유효하지 않은 날짜 데이터를 처리하는 방식에 의한 결과일 수 있다. 이런 경우 mysql client를 이용하면 좀더 명확하게 확인할 수 있다.

mysql cli로 확인해보면 데이터가 유효하지 않은 날짜 범위인 '0000-00-00', '0000-00-00 00:00:00' 등으로 INSERT된 결과임을 확인할 수 있었다.

728x90