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

2. month()함수를 사용하여 특정 달의 날짜 데이터를 검색
- 월이 1월인 날짜만 검색 : select * where month(A) = 0
- 월이 9월인 날짜만 검색 : select * where month(A) = 8

여기서 주의하실 점은, 숫자가 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

4. dayOfWeek()함수를 사용하여 특정 요일의 날짜 데이터를 검색
- 요일이 일요일인 날짜만 검색 : select * where dayOfWeek(A) = 1
- 요일이 토요일인 날짜만 검색 : select * where dayOfWeek(A) = 7

여기서 주의하실 점은, 요일은 일요일: 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 사용법 목차
구글시트 필터 관련해서 구글링 하다 오게 됐습니다. 한가지 여쭤 보고 싶은게 있는데 필터를 적용 할 때 각 주별로 나온 결과값을 고정 할수있는 방법이 있을까요? 혹시나 해서 자료를 첨부 했는데 자료를 보시면 C ~ G 는 주별 지점의 매출액 이 있는데 제가 적용해 보고 싶은건 각 주별로 높은순으로 고정 하여 주별 흐름이 가장 높은 지점을 찾는 겁니다. L ~ Q 열에 예를 들어 만들어 두었습니다. L 열은 M ~ Q 값이 변하면 값이 변동 될거니까 빈칸으로 두었습니다.불쑥 들어와서 이것저것 내 놓으라고 하는것 같아 죄송 스럽습니다. 만약 필터 기능으로 구현이 안된다면 다른 방법이 있으시면 조언 부탁드립니다.미안합니다.
https://docs.google.com/spreadsheets/d/1BJW9dAD4pGPs7Cg8aIIpc0eA9In1LX4AP2opwBtS8_s/edit?usp=sharing
(편집자 모드로 변경 해두었습니다)
좋아요좋아요
댓글의 내용과 시트를 확인해보았습니다. 원하시는 내용이 잘 이해되지 않습니다만, 필터로는 어려울 것 같습니다. 만약에 주간 매출액의 평균이 높은 지점순서대로 표시하고 싶으신 것이라면 피봇 테이블이나 Query함수에서 Group by 를 사용하면 가능할 것으로 보입니다. 다만, 두 기능 다 자료로 주신 B~G테이블로는 안됩니다. 테이블 자체의 구조를 조금 바꾸셔야합니다.
좋아요좋아요
아래 포스팅 참고하시기 바랍니다.
구글 스프레드시트 사용법 (7) Query로 데이터 분석하기
관객수 Top 20 한국 영화
구글 스프레드시트 사용법 (18) 피봇 테이블로 연간, 월간, 주간 테이블 만들기
좋아요좋아요
친절한 답변 감사 드립니다. 테이블 구조를 변경을 해보기 하고 그리고 포스팅 하신 쿼리 를 사용 하는 방법을 이용해서 적용을 해보겠습니다. 제대로 배우게 되었습니다. 감사합니다.
그리고 인프런 에서 강의를 하셨더군요! 반갑네요! 곧 배우러 가겠습니다.
좋아요좋아요
구글시트 관련 찾아보다가 오게되었습니다…한가지 질문드려봅니다..
첨부한 파일에서 구입과 지급시트를 수불부시트에 합쳐지게는 했는데요..
수불부 시트에서 열c 를 날짜 순으로 펼쳐지게는 못할까요?
https://docs.google.com/spreadsheets/d/19DsfZrl_TnTvUL0NBvJYBpNE16Iz-AjkOLDNbVAYGjA/edit#gid=1751999495
좋아요좋아요
특정 열을 기준으로 표시 순서를 바꾸고 싶을 때는 Order by 를 사용하시면 됩니다.
아래 포스팅을 참고하시기 바랍니다.
스프레드시트 Query 사용법 (6) Order By, limit
좋아요좋아요