최근에 작업 중에 알림기능을 덤으로 추가해볼까 하다가, 문득 Facebook의 알림이 생각났다.
매번 알림오는 것을 보면서, 저것을 어떻게 만들었을까를 한번 도 생각해 보지 않았었는데..
이렇게 만들고 나서 남겨보려고 한다.

제가 하려고 하는것은 파란(blue)글씨로 노출 중인 (약 1시간전, 3일전, 4일전...) 요런 걸 만드는 쿼리입니다.
쿼리는 Microsoft Sql Server로 작성되었습니다.
[쿼리]
SELECT '맥도날드(McDonald\''s)' MENU,'님이 릴스를 공유했습니다.' TITLE,
CASE
WHEN DATEDIFF(second, InquiryDate, GETDATE()) < 60 THEN CAST(DATEDIFF(second, InquiryDate, GETDATE()) AS VARCHAR) + ' seconds ago'
WHEN DATEDIFF(minute, InquiryDate, GETDATE()) < 60 THEN CAST(DATEDIFF(minute, InquiryDate, GETDATE()) AS VARCHAR) + ' minutes ago'
WHEN DATEDIFF(hour, InquiryDate, GETDATE()) < 24 THEN CAST(DATEDIFF(hour, InquiryDate, GETDATE()) AS VARCHAR) + ' hours ago'
ELSE CAST(DATEDIFF(day, InquiryDate, GETDATE()) AS VARCHAR) + ' days ago'
END AS agoTime
FROM [TABLE NAME]
UNION ALL
SELECT 'Visit Queensland, Austraila' MENU,'님이 릴스를 공유했습니다.' TITLE,
CASE
WHEN DATEDIFF(second, ApplicantDate, GETDATE()) < 60 THEN CAST(DATEDIFF(second, ApplicantDate, GETDATE()) AS VARCHAR) + ' seconds ago'
WHEN DATEDIFF(minute, ApplicantDate, GETDATE()) < 60 THEN CAST(DATEDIFF(minute, ApplicantDate, GETDATE()) AS VARCHAR) + ' minutes ago'
WHEN DATEDIFF(hour, ApplicantDate, GETDATE()) < 24 THEN CAST(DATEDIFF(hour, ApplicantDate, GETDATE()) AS VARCHAR) + ' hours ago'
ELSE CAST(DATEDIFF(day, ApplicantDate, GETDATE()) AS VARCHAR) + ' days ago'
END AS agoTime
FROM [TABLE NAME]
[결과화면]

이 기능을 본지 엄~청 오래되었는데, 이제야 만들어보네요, 좀 더 분발해야 겠습니다.
감사합니다.
'SQL' 카테고리의 다른 글
| [SQL]WHERE 조건에 CASE WHEN 사용하기 (0) | 2023.10.23 |
|---|