스프레드시트 Query 사용법 (10) where 조건에 날짜 함수 사용하기

Query 문법 중 where 절에는 일부 함수를 조건으로 사용할 수 있습니다. 그 중에서 날짜함수를 사용하는 방법에 대해서 알려드리겠습니다.

참고한 내용: Query Language Reference > Scalar Functions

예시 데이터는 2021년1월부터 2022년12월까지 2년간의 한국 공휴일 날짜 테이블입니다.
A열에는 공휴일 날짜, B열에는 공휴일 정보가 정리되어 있습니다.

1. year()함수를 사용하여 특정 연도의 날짜 데이터를 검색

  • 연도가 2021년인 날짜만 검색 : select * where year(A) = 2021
  • 연도가 2022년인 날짜만 검색 : select * where year(A) = 2022
select 조건문에 날짜함수 사용하기 > year

2. month()함수를 사용하여 특정 달의 날짜 데이터를 검색

  • 월이 1월인 날짜만 검색 : select * where month(A) = 0
  • 월이 9월인 날짜만 검색 : select * where month(A) = 8
select 조건문에 날짜함수 사용하기 > month

여기서 주의하실 점은, 숫자가 0부터 시작한다는 점입니다. 해당 월에서 1을 뺀 숫자를 조건에 넣어야 합니다. 예를 들어, 1월을 검색하고 싶다면 조건에 0을, 12월을 검색하고 싶다면 조건에 11을 지정해야 합니다.

month() 함수 설명:
Returns the zero-based month value from a date or datetime value. For example: month(date "2009-02-05") returns 1. Note: the months are 0-based, so the function returns 0 for January, 1 for February, etc.

3. day()함수를 사용하여 특정 일의 날짜 데이터를 검색

  • 일이 1일인 날짜만 검색 : select * where day(A) = 1
  • 일이 25일인 날짜만 검색 : select * where day(A) = 25
select 조건문에 날짜함수 사용하기 > day

4. dayOfWeek()함수를 사용하여 특정 요일의 날짜 데이터를 검색

  • 요일이 일요일인 날짜만 검색 : select * where dayOfWeek(A) = 1
  • 요일이 토요일인 날짜만 검색 : select * where dayOfWeek(A) = 7
select 조건문에 날짜함수 사용하기 > dayOfWeek

여기서 주의하실 점은, 요일은 일요일: 1 ~ 토요일 : 7로 지정해야한다는 점입니다.

  • 일요일 : 1
  • 월요일 : 2
  • 화요일 : 3
  • 수요일 : 4
  • 목요일 : 5
  • 금요일 : 6
  • 토요일 : 7
dayOfWeek() 함수 설명:
Returns the day of week from a date or datetime value. For example: dayOfWeek(date "2009-02-26") returns 5. Note that days are 1-based, so the function returns 1 for Sunday, 2 for Monday, etc.

주의사항

이번에 알려드린 날짜 함수는 Query문법의 함수라서 이전에 알려드린 스프레드시트의 날짜 함수와 사용법이 다른 함수도 있습니다. 사용하실 때 Query Language Reference > Scalar Functions 에서 해당 함수의 사용법을 잘 확인하시길 바랍니다.


Query 문법을 더 자세히 알고싶으시다면!
» 스프레드시트 Query 사용법 목차

6 Replies to “스프레드시트 Query 사용법 (10) where 조건에 날짜 함수 사용하기”

  1. 구글시트 필터 관련해서 구글링 하다 오게 됐습니다. 한가지 여쭤 보고 싶은게 있는데 필터를 적용 할 때 각 주별로 나온 결과값을 고정 할수있는 방법이 있을까요? 혹시나 해서 자료를 첨부 했는데 자료를 보시면 C ~ G 는 주별 지점의 매출액 이 있는데 제가 적용해 보고 싶은건 각 주별로 높은순으로 고정 하여 주별 흐름이 가장 높은 지점을 찾는 겁니다. L ~ Q 열에 예를 들어 만들어 두었습니다. L 열은 M ~ Q 값이 변하면 값이 변동 될거니까 빈칸으로 두었습니다.불쑥 들어와서 이것저것 내 놓으라고 하는것 같아 죄송 스럽습니다. 만약 필터 기능으로 구현이 안된다면 다른 방법이 있으시면 조언 부탁드립니다.미안합니다.
    https://docs.google.com/spreadsheets/d/1BJW9dAD4pGPs7Cg8aIIpc0eA9In1LX4AP2opwBtS8_s/edit?usp=sharing
    (편집자 모드로 변경 해두었습니다)

    좋아요

    1. 댓글의 내용과 시트를 확인해보았습니다. 원하시는 내용이 잘 이해되지 않습니다만, 필터로는 어려울 것 같습니다. 만약에 주간 매출액의 평균이 높은 지점순서대로 표시하고 싶으신 것이라면 피봇 테이블이나 Query함수에서 Group by 를 사용하면 가능할 것으로 보입니다. 다만, 두 기능 다 자료로 주신 B~G테이블로는 안됩니다. 테이블 자체의 구조를 조금 바꾸셔야합니다.

      좋아요

      1. 친절한 답변 감사 드립니다. 테이블 구조를 변경을 해보기 하고 그리고 포스팅 하신 쿼리 를 사용 하는 방법을 이용해서 적용을 해보겠습니다. 제대로 배우게 되었습니다. 감사합니다.
        그리고 인프런 에서 강의를 하셨더군요! 반갑네요! 곧 배우러 가겠습니다.

        좋아요

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중