본문 바로가기
MySql

MySQL 날짜를 사용하는 MySQL CASE 문

by 베이스 공부 2020. 9. 27.
반응형

내가 가진 SQL 쿼리에서 CASE 문을 사용하려고하는데 내가 생각한 방식으로 작동하지 않습니다.

기본적으로 수행해야 할 세 가지 시나리오가 있으며 날짜 필드를 사용하여 예를 들어 다음 데이터가 있습니다.

id | date_activated
1  | 2011-10-10 07:00:06
2  | 2011-03-12 10:00:00
3  | 2011-11-27 18:10:36
4  | 2010-01-25 14:30:43
5  | 0000-00-00 00:00:00

다음 SQL 사용 :

select id,
case date_activated
when date_activated > '2011-11-23 18:30:00' then 'after'
when date_activated > '2010-01-20 00:00:00' then 'before'
else 'not yet'
end as date_note
from table1

가져와야합니다 :

id | date_activated       | date_note
1  | 2011-10-10 07:00:06  | before
2  | 2011-03-12 10:00:00  | before
3  | 2011-11-27 18:10:36  | after
4  | 2010-01-25 14:30:43  | before
5  | 0000-00-00 00:00:00  | not yet

그러나 이것은 이것을 이끌어 내고 있습니다.

id | date_activated       | date_note
1  | 2011-10-10 07:00:06  | not yet
2  | 2011-03-12 10:00:00  | not yet
3  | 2011-11-27 18:10:36  | not yet
4  | 2010-01-25 14:30:43  | not yet
5  | 0000-00-00 00:00:00  | after

내가 뭘 잘못하고 있는지 이해할 수 없지만 간단한 일이라고 확신합니다!

 

해결 방법

 

이거 한번 해봐 -

SELECT
  id,
  CASE
    WHEN date_activated > '2011-11-23 18:30:00' THEN 'after'
    WHEN date_activated > '2010-01-20 00:00:00' THEN 'before'
    ELSE 'not yet'
  END AS date_note
FROM table1;

MySQL에는 두 가지 CASE 흐름 함수가 있으며 하나는 조건과 함께 사용해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/8297488

 

 

반응형

댓글