Query 문법 네 번째 where 절 날짜와 시간 조건에 대해서 알려드리겠습니다.
SELECT 컬럼명 [WHERE 조건식]
조건을 걸고 싶은 열의 데이터가 날짜 혹은 시간 데이터일 경우,
크게 3가지 문법으로 검색할 수 있습니다.
- 날짜 조건: date ‘yyyy-MM-dd’
- 시간 조건: timeofday ‘HH:mm:ss’
- 날짜와 시간 조건: datetime ‘yyyy-MM-dd HH:mm:ss’
또한, 날짜나 시간의 조건은 반드시 ”(따옴표)로 감싸줘야 합니다.
1. 날짜 데이터 검색에는 date ‘yyyy-MM-dd’
예시 데이터로는 2019년 한국 휴일 날짜 테이블을 준비했습니다.
예시 데이터에서 날짜로 되어 있는 A열 데이터로 조건을 지정해보겠습니다.
날짜가 ‘2019년 5월 5일’인 휴일을 검색하고 싶은 경우,
select * where A = date ‘2019-05-05’
샘플 스프레드시트: [QUERY] where 날짜와 시간 > where 날짜 1
2019년 하반기의 휴일을 휴일을 검색하고 싶은 경우,
2019년 7월 1일 이후의 휴일을 검색합니다.
select * where A >= date ‘2019-07-01’
샘플 스프레드시트: [QUERY] where 날짜와 시간 > where 날짜 2
2019년 6월~8월 사이의 휴일을 검색하고 싶은 경우,
2019년 6월 1일 보다 크고 8월 31일보다 작은 날짜의 휴일을 검색합니다.
select * where A >= date ‘2019-06-01’ and A <= date ‘2019-08-31’
샘플 스프레드시트: [QUERY] where 날짜와 시간 > where 날짜 3
2. 시간 데이터 검색에는 timeofday ‘HH:mm:ss’
시간데이터 예시로는 영화채널의 편성표를 준비했습니다.
12시 이후에 방송하는 프로그램을 검색하고 싶은 경우,
select * where A > timeofday ’12:00:00′
샘플 스프레드시트: [QUERY] where 날짜와 시간 > where 시간
3. 날짜와 시간 데이터 검색에는 datetime ‘yyyy-MM-dd HH:mm:ss’
2019년 7월 20일 밤 9시부터
다음날인 7월 21일 새벽 6시 사이에 방송하는 프로그램을 검색하고 싶은 경우,
select * where A >= datetime ‘2019-07-20 21:00:00’ and A < datetime ‘2019-07-21 06:00:00’
샘플 스프레드시트: [QUERY] where 날짜와 시간 > where 날짜 시간
Query 문법을 더 자세히 알고싶으시다면!
» 스프레드시트 Query 사용법 목차
where로 불러오는 부분을 셀참조로 가져올 순 없나요?
좋아요좋아요
셀참조 가능합니다.
구글 스프레드시트 사용법 (8) 데이터 필터링하기
https://smartagent.blog/2018/11/01/spreadsheet08/
에서 “Query함수로 필터링” 내용을 참고하시기바랍니다.
좋아요좋아요
하…..감사합니다ㅠㅠ
좋아요좋아요
셀참조하는 참조 칸이 날짜형식으로 적혀 있으면 불러오지를 못하는 것 같은데 방법 있을까요?
예를들어 타임스탬프가 2020.4.1일로 찍힌것만 가져온다고 하면 2020.4.1이라고 적힌 셀을 참조로 하면 작동하지를 않더라고요
좋아요좋아요
날짜 형식의 데이터를 다른 셀에서 참조하면 숫자로 나오는 문제가 발생하기도 합니다.
이 경우에는 TEXT라는 함수를 사용하시면 됩니다.
참조하는 날짜셀이 만약 A1 일 경우,
“select * where A=’”&TEXT(A1, “yyyy-mm-dd”)&“’”
참고: TEXT함수
https://support.google.com/docs/answer/3094139?hl=ko
좋아요좋아요
감사합니다!!!
좋아요좋아요
참고로 타임스탬프가 찍혀있는 참조 셀은 left함수로 시분초는 제외한 날짜까지만 표현되도록 해놨습니다.
좋아요좋아요
안녕하세요. 위내용 처럼 셀참조를 통하여 해당날짜의 전체 데이터를 불러오고 싶은데 1행의 전체열만 나고고 나머지 데이터 열,행이 나오지 않습니다.(목차제목만 나옴) 아직 초보라 무엇이 잘못 되었는지 너무 어렵습니다.
=QUERY(‘설문지 응답 시트1’!B:I,”select * WHere B>='”&TEXT(Q1,”yyyy.mm.dd”)&”‘”)
좋아요좋아요
써주신 Query 구문에서 ”yyyy.mm.dd” 를 “yyyy-mm-dd”로 바꿔서 테스트 해보시길 바랍니다.
Query에서는 날짜의 서식이 슬래시”-“로 구분된 날짜만 인식하는 걸로 알고있습니다.
예시) ‘2020-05-05’
좋아요좋아요
와.. 당신.
너무 멋져요. 쿼리만 마스터하면 내가 더 짱짱이될수있겠어요.
감사합니다
좋아요좋아요
=QUERY(all_rowdata!2:5038,”select A,B,C,D,G,H,I,J,K,L,M,O,S,U WHERE N ='”&TEXT(A1,”yyyy-mm-dd”)&”‘”)
로우데이터 중에서 N열의 날짜 형식 (2022-04-01) , 그리고 A1 또한 (2022-04-01) 과 같은 형식으로 입력이 되어있습니다!
쿼리에 대한 출력이 빈 상태로 완료되었습니다. 라고 뜨는데 왜 그런지 알 수 있을까요. 이리저리 다 뒤져도 나오질 않습니다.ㅠㅠ
좋아요좋아요
날짜 앞에 date 를 붙여보시기 바랍니다. 포스팅 1번 내용입니다.
그리고 로우 데이터 아래에 다른 데이터가 없다면,
범위를 all_rowdata!2:5038 에서 모든 열을 다 포함하도록 all_rowdata!A:U로 바꿔보시는 것을 추천 드립니다.
=QUERY(all_rowdata!A:U, “select A,B,C,D,G,H,I,J,K,L,M,O,S,U WHERE N = date ‘”&TEXT(A1,”yyyy-MM-dd”)&”‘”)
아래의 샘플 시트를 참고하시기 바랍니다.
https://docs.google.com/spreadsheets/d/1yOw_0rV3Qey6FvwCY5yL3wHZ6HXdBq-WXbn9IO0w3ZA/edit#gid=330701638
좋아요좋아요
앗 질문을 올렸는데 보이지 않아 다시 올립니다.
A시트에 2022-01-16 날짜로 여러 값이 있고,
B시트 날짜열 2022-01-16에 맞춰 A시트 2022-01-16 날짜의 모든 값을 SUM 하고 싶을 땐 어떻게 해야 할까요?
=QUERY(raw!$A$16:$F,”select SUM(E) where A = “&TEXT(B272,”yyyy-mm-dd”)&” and C contains ‘20230113_search_push’ group by A label SUM(E) ””)”)”
* raw 시트에 2022-01-16 날짜로 여러 값이 있음
* B272는 raw 시트가 아닌 다른 시트에 2022-01-16이라는 날짜 셀 값임
날짜를 하나하나 입력하고 있습니다. T-T
도움 부탁 드립니다.
좋아요좋아요
안녕하세요. 스마트요원입니다.
참고로, 제 블로그에 댓글은 스팸성 댓글을 걸러내기 위해 제가 승인해야지만 등록됩니다.
질문주신 쿼리를 확인해보니, 원하시는 내용을 계산해볼 수 있게 만드신 것으로 보입니다.
만약 A열에 날짜, B열에 합계를 구할 숫자 데이터가 있고,
E1셀의 날짜를 A열 검색의 조건으로 대입하고 싶다면 쿼리는 아래처럼 작성하면 됩니다.
“select sum(B) where A = date ‘”&text(E1, “yyyy-MM-dd”)&”‘”
아래 예시 스프레드시트를 참고해주시기 바랍니다.
https://docs.google.com/spreadsheets/d/1yOw_0rV3Qey6FvwCY5yL3wHZ6HXdBq-WXbn9IO0w3ZA/edit#gid=182285264
좋아요좋아요
스마트요원님 감사합니다. 도움 주셔서 이렇게 만들어봤는데요.
=QUERY(raw!$A$16:$F,”select SUM(E) where A = date ‘”&text(B280,”yyyy-MM-dd)&” and C contains ‘20230113_search_push’ group by A label SUM(E) ””)”))
수식 파싱 오류가 발생했다는 에러가 발생합니다. B280셀의 날짜는 raw 시트가 아닌데 이렇게 작성해도 되는걸까요? T-T
좋아요좋아요
만드신 수식에 오류가 몇개 확인됩니다.
text 함수에 큰따옴표, and 이전에 작은따옴표가 빠져있습니다.
마지막에 label SUM(E) ””)”) 부분이 문법에 맞지 않습니다.
중요하지 않다면 마지막 부분은 삭제하는 것을 추천드립니다.
제가 고쳐볼 수 있는 레벨에서 고쳐보자면:
=QUERY(raw!$A$16:$F,”select SUM(E) where A = date ‘”&text(B280,”yyyy-MM-dd”)&”’ and C contains ‘20230113_search_push’ group by A”)
마지막에 SUM(E)의 레이블을 ‘합계’로 표시하고 싶다면:
=QUERY(raw!$A$16:$F,”select SUM(E) where A = date ‘”&text(B280,”yyyy-MM-dd”)&”’ and C contains ‘20230113_search_push’ group by A label sum(E) ‘합계'”)
그리고, 댓글에서는 따옴표가 조금 이상하게 표시되어 그대로 복붙하면 문제가 발생할 수 있습니다.
복사해가신 후에 큰따옴표, 작은따옴표를 다시 입력하는 것도 한가지 방법입니다.
셀 참조로 문제가 발생하는 것은 댓글만으로는 고쳐드리기 힘든 점 양해바랍니다.
좋아요좋아요
우아 정말 감사합니다. ㅠㅠ 최고입니다, 멋져요!
업무에서 많이 사용하진 않지만 쿼리문을 공부하고 싶은데 혹시 강의도 하시나요?
좋아요좋아요