가끔 insert나 select 등 값에 조건을 걸어 다른 값으로 표현하거나 삽입하고 싶은 경우가 있다. 나 같은 경우엔 테이블에 nullable한 datetime 컬럼이 있고 파라미터로 unix 시간을 받는데, 파라미터 값이 0인 경우엔 datetime에 NULL을 넣고, 0이 아니면 datetime으로 변환한 값을 넣고 싶었다. CASE ~ WHEN을 쓰는 방법과 IF를 쓰는 방법 2가지가 있다. CREATE PROCEDURE `sp` ( IN _start_time BIGINT ) BEGIN -- 1. CASE~WHEN INSERT INTO (start_date) VALUES ((CASE WHEN _start_time = 0 THEN NULL ELSE FROM_UNIXTIME(_start_time))..