[DEV SQL] 2. Date 날짜 요일 관련 유용한 쿼리 관련


Date 날짜 요일 관련 유용한 쿼리 관련 포스팅


목차

  • 1 . 오늘 기준 며칠 전 처리 (mysql/mariadb)
  • 2 . 댓글/후기 등 등록 된 시간 (mysql/mariadb)
    • 방금 전, 몇 분 전, 한 시간 전 … 시간 표시



1. 오늘 기준 며칠 전 처리

해당 포스팅 날짜는 2019-05-11 이다.

SELECT 
IF(TO_DAYS(now()) - TO_DAYS('2019-05-11'), TO_DAYS(now()) - TO_DAYS('2019-05-11'), '오늘') AS DAYSAGO1
, TO_DAYS(now()) - TO_DAYS('2019-05-05') AS DAYSAGO2;

출력 결과

  • 오늘, 6



2 . 댓글/후기 등 등록 된 시간

  • 방금 전, 몇 분 전, 한 시간 전 … 시간 표시

해당 포스팅 날짜는 2019-07-20 이다.

SELECT 
CASE
    WHEN TIMESTAMPDIFF(MINUTE, '2019-07-20 20:00:00', NOW()) <= 0 THEN '방금 전'
    WHEN TIMESTAMPDIFF(MINUTE, '2019-07-20 20:00:00', NOW()) < 60 THEN CONCAT(TIMESTAMPDIFF(MINUTE, '2019-07-20 20:00:00', NOW()), '분 전')
    WHEN TIMESTAMPDIFF(HOUR, '2019-07-20 20:00:00', NOW()) < 24 THEN CONCAT(TIMESTAMPDIFF(HOUR, '2019-07-20 20:00:00', NOW()), '시간 전')
    WHEN TIMESTAMPDIFF(DAY, '2019-07-20 20:00:00', NOW()) < 30 THEN CONCAT(TIMESTAMPDIFF(DAY, '2019-07-20 20:00:00', NOW()), '일 전')
    ELSE CONCAT(TIMESTAMPDIFF(MONTH, '2019-07-20 20:00:00', NOW()), '달 전')
END AS AGOTIME
    FROM DUAL

출력 결과

  • ex) 방금전, 1시간 전

쿼리에서 노출은 시키는 방법이지만, 자바스크립트 등으로 클라이언트 쪽에서 처리하는게 더 좋다고 생각한다.


유용한 Date 관련 쿼리는 해당 포스팅을 통해 기록해야겠다.