320x100
가끔 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))
-- 2. IF
INSERT INTO (start_date) VALUES (IF(_start_time = 0, NULL, FROM_UNIXTIME(_start_time)))
END
320x100
'DB > MYSQL' 카테고리의 다른 글
paging 작업 (0) | 2021.10.07 |
---|---|
[펌] MyISAM와 InnoDB 비교 (0) | 2021.10.07 |
commands out of sync you can't run this command now (0) | 2021.10.07 |
MYSQL을 위한 GUI 툴 (0) | 2021.10.05 |
시간 관련 함수 (0) | 2021.10.05 |