본문 바로가기

SQL/MSSQL3

[MSSQL]datetime타입의 컬럼에 Null값을 Insert할 때 1999-01-01이 들어가는 현상과 해결법 🔍 현상 NULL을 허용하는 VALIDITY_DATE 컬럼에 데이터 값을 입력하지 않고 저장을 시켰는데 위와 같이 1900-01-01데이터가 삽입되었다. 💡 해결 처음엔 ISNULL로 해결을 해보려고 했으나... 1900-01-01이 들어가는건 마찬가지여서 IFNULL을 사용해 해결했다. INSERT INTO T_TEMP_TABLE ( MAIN_CD , VALIDITY_DATE . . . ) VALUES ( #{mainCd} , IIF(#{validityDate} = '', NULL, #{validityDate}) . . .) select 할때도 datetime타입의 데이터가 NULL인경우에는 1900-01-01가 뿅 튀어나와서 애를 먹었었는데 이 부분은 따로 정리를 해야겠다. 2024. 1. 10.
[MSSQL] ISNULL과 NULLIF ISNULL과 NULLIF 💡 ISNULL - NULL을 지정된 대체 값으로 바꿈. ISNULL(A, B) : A가 NULL일경우 B를 출력 SELECT ISNULL(NULL, 5) AS A_NULL, ISNULL(4, 5) AS A_NOT_NULL; https://learn.microsoft.com/ko-kr/sql/t-sql/functions/isnull-transact-sql?view=sql-server-ver16 ISNULL(Transact-SQL) - SQL Server ISNULL(Transact-SQL) learn.microsoft.com 💡 NULLIF - 지정된 두 식이 같으면 NULL값을 반환. NULLIF(A, B) : A, B가 같으면 NULL값을, 같지 않으면 A를 반환 SELEC.. 2024. 1. 6.
[MSSQL] IN절을 사용해 데이터 출력하기 - 잘못된 사용자 데이터 추출 전체 데이터 중 특정 정보(데이터)가 입력되지 않은 데이터만을 출력하는 일을 받았다. 고객사의 IT 관리자가 필요한 사용자정보를 입력하지 않은 사용자들을 파악해 관리하기 위함이었다. 메인화면의 카드를 통해 해당 페이지에 들어가게 되면 전체 사용자 정보 중에서 필요한 사용자 정보를 입력하지 않은 데이터만 출력하는 방식이다. 페이지를 새로 제작하는 것이 아니라 조건에 따라 보이는 데이터를 변경해줘야 했고, 기존 화면에 존재하는 데이터들은 영역별/그리드 별로 쿼리를 따로 불러와 출력하는 상황이었기 때문에 고민을 많이 했다. 우선 필요한 사용자 정보를 입력하지 않은 데이터(이하 에러 데이터)를 가져오는 조건을 부여하기 위해 검색조건에 errorYn이라는 필드를 추가했다. 카드를 클릭해서 해당 페이지에 접근하게 .. 2023. 10. 27.
728x90