블로그는 나의 힘!
[ Programing ]/Database2024. 3. 13. 19:52

# 현재시간, 현재달 첫날, 다음달 첫날, 다음달(+10) 첫날
SELECT NOW(), 
     LAST_DAY(NOW()),      -- 현재 마지막 일
     LAST_DAY(NOW() - INTERVAL 1 MONTH),      -- 이전달 마지막 일
     LAST_DAY(NOW() + INTERVAL 1 MONTH),       -- 다음달 마지막 일
     DATE_ADD(LAST_DAY(NOW() - INTERVAL 1 MONTH), INTERVAL 1 DAY),      -- 현재달 처음 일
     DATE_ADD(LAST_DAY(NOW() + INTERVAL 1 MONTH), INTERVAL 1 DAY),      -- 다음달 처음 일
     DATE_ADD(LAST_DAY(NOW() + INTERVAL 10 MONTH), INTERVAL 1 DAY)      -- +10달 처음 일

-- 2024-03-13 19:49:02    2024-03-31    2024-02-29    2024-04-30    2024-03-01    2024-05-01    2025-02-01


# 날짜 조건 조회
SELECT NOW(), '2024-04-13 20:06:34',
     DATE_ADD(LAST_DAY(NOW() - INTERVAL 1 MONTH), INTERVAL 1 DAY),
     DATE_ADD(LAST_DAY(NOW() + INTERVAL 1 MONTH), INTERVAL 1 DAY), 
     CASE
          WHEN ('2024-04-13 20:06:34' >= DATE_ADD(LAST_DAY(NOW() - INTERVAL 1 MONTH), INTERVAL 1 DAY)
               AND '2024-04-13 20:06:34' < DATE_ADD(LAST_DAY(NOW() + INTERVAL 1 MONTH), INTERVAL 1 DAY))
               THEN 33 
          ELSE 99
     END AS _IF
-- 2024-03-13 20:24:09    2024-04-13 20:06:34    2024-03-01    2024-05-01    33




'[ Programing ] > Database' 카테고리의 다른 글

[SQL] CASE WHEN  (0) 2024.02.27
[MySQL] 이전 달 및 날짜 계산.  (0) 2024.02.21
[MySQL] Lock 발생시 모니터링.  (0) 2024.02.20
[DB] 프로시저에서 SP 호출.  (0) 2023.11.22
[MySQL] View Table 삭제&생성  (0) 2023.11.16
Posted by Mister_Q
[ Programing ]/Database2024. 2. 27. 11:00

# CASE WHEN : IF 조건과 동일하게 사용 가능.

> SELECT 
        CASE 
             WHEN (1 > 2) THEN 11 
             ELSE 99 
        END AS _IF 

-- 99




> SELECT 
        CASE 
             WHEN (1 > 2) THEN 11 
             WHEN (2 > 1) THEN 22 
             ELSE 99 
        END AS _IF 

-- 22



Posted by Mister_Q
[ Programing ]/Database2024. 2. 21. 19:16

SELECT NOW(), DAY(NOW()), MONTH(NOW()), YEAR(NOW()), HOUR(NOW()), MINUTE(NOW()), SECOND(NOW())
-- 2024-02-21 19:14:59          21           2            2024            19            14           59




> SELECT NOW(), DATE_ADD(NOW(), INTERVAL (DAY(NOW()) * -1) DAY)
-- 2024-02-21 19:05:31          2024-01-31 19:05:31     




> SELECT NOW(), DATE_ADD(NOW(), INTERVAL (DAY(NOW()) * -1) + 1 DAY)
-- 2024-02-21 19:10:28          2024-02-01 19:10:28      




> SELECT NOW(), DATE_ADD(DATE_ADD(NOW(), INTERVAL (DAY(NOW()) * -1) + 1 DAY), INTERVAL -1 MONTH)
-- 2024-02-21 19:12:02          2024-01-01 19:12:02      




SELECT NOW(),
       DATE_FORMAT(NOW(),'%Y%m%d'),
       DATE_FORMAT(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y-%m-%d %H:%i:%s'),
       CAST(DATE_FORMAT(NOW(),'%Y%m%d') AS DATETIME)
-- 2024-02-21 19:28:09          20240221          2024-02-21 00:00:00          2024-02-21 00:00:00




> SELECT NOW(), 
       DATE_ADD(CAST(DATE_FORMAT(NOW(),'%Y%m%d') AS DATETIME), INTERVAL (DAY(NOW()) * -1) DAY)

-- 2024-02-21 19:31:33          2024-01-31 00:00:00      




> SELECT NOW(), 
        CAST(DATE_FORMAT(NOW(),'%Y%m01') AS DATETIME), 
        DATE_ADD(CAST(DATE_FORMAT('2024-01-31 00:00:00','%Y%m01') AS DATETIME), INTERVAL 1 MONTH)
-- 2024-02-26 14:17:24          2024-02-01 00:00:00          2024-03-01 00:00:00          



※ 티스토리 띠워쓰기 부분이 syntax 에러 발생하니 띠워쓰기 수정하고 조회 할 것.

Posted by Mister_Q