조회 기간 (:from · :to)
툴바에서 고른 기간을 타일 쿼리에 넘기는 방법과, 그 값이 어느 시간대로 나가는지를 설명합니다.
기간 파라미터 쓰기
타일 쿼리에 :from · :to 를 넣으면 툴바 [기간] 에서 고른 값이 들어갑니다. 쓸 수 있는 이름은 이 둘뿐이고, 다른 이름이 있으면 저장되지 않습니다.
예시:
SELECT DATE(created_at) AS d, COUNT(*) AS cnt FROM orders WHERE created_at >= :from AND created_at < :to GROUP BY DATE(created_at) ORDER BY d프리셋은 최근 1 시간 · 24 시간 · 7 일 · 30 일 과 직접 지정(날짜 범위)입니다. 프리셋은 실행 시점에 계산하므로, 대시보드를 열어 둔 채 날이 바뀌어도 '최근 24 시간' 이 어제 구간에 머물지 않습니다.
기간을 참조하지 않는 타일은 기간을 바꿔도 다시 돌지 않습니다. 툴바에는 참조하는 타일이 몇 개인지가 '기간 사용 n개' 로 표시됩니다.
값은 문자열로 치환하지 않고 파라미터로 바인드합니다 — DBMS 마다 날짜 리터럴 문법이 다르고, 문자열 치환은 주입 위험을 엽니다.
:to 는 다음 날 00:00
직접 지정으로 9/1 ~ 9/30 을 고르면 :to 에는 10/1 00:00 이 들어갑니다. 그래서 구간은 >= :from AND < :to 로 써야 고른 날이 모두 들어옵니다.
마지막 날의 00:00 을 그대로 보내면 그날이 통째로 빠져 29 일치가 되고, 23:59:59 로 닫으면 그 1 초와 밀리초가 경계에서 애매해집니다.
BETWEEN :from AND :to 는 양 끝을 모두 포함하므로 마지막 날 자정의 1 건을 더 가져옵니다. 반열림 구간(>= 와 <)으로 쓰는 것을 권합니다.
어느 시간대로 나가는가
기본은 그 커넥션의 DB 시간대 벽시계입니다 (예: 2026-09-01 00:00:00).
DATETIME · TIMESTAMP 컬럼에는 숫자만 적혀 있고, 그것이 UTC 인지 로컬인지는 스키마 어디에도 기록되지 않습니다. 그런 컬럼은 대개 NOW() · SYSDATE 로 채워지므로, 서버가 '지금' 이라고 말하는 시간대가 그 숫자의 기준입니다.
보는 사람의 시간대를 기본으로 하면, 시간대가 다른 팀원이 같은 대시보드를 열었을 때 서로 다른 구간을 조회합니다. 기준은 보는 사람이 아니라 데이터에 달려 있습니다.
DB 시간대는 커넥션을 연결 테스트할 때 서버에 물어 커넥션에 저장됩니다. 사용자가 고르는 설정이 아니라 서버가 답하는 사실이라 커넥션 설정 화면에는 나오지 않습니다.
한 번도 연결 테스트를 하지 않은 커넥션은 기준을 모르므로 UTC 로 나가고, 화면에는 'UTC · DB 시간대 미확인' 으로 적힙니다. 커넥션 설정에서 연결 테스트를 한 번 하면 채워집니다.

기준이 틀리면 오류 없이 시차만큼 옮겨진 구간을 조회합니다 — 건수가 조금 다를 뿐이어서 증상으로 드러나지 않습니다. 그래서 어느 기준으로 나갔는지를 화면에 늘 적습니다.
내 시간대로 조회
타일 설정의 쿼리 아래 [내 시간대로 조회] 를 켜면 그 타일만 DB 시간대 대신 내 시간대 벽시계로 보냅니다. 이 체크박스는 쿼리가 :from · :to 를 쓸 때만 나옵니다.
대가는 보는 사람마다 다른 구간입니다. 시간대가 다른 팀원은 같은 타일에서 다른 값을 봅니다.
- 타일 설정의 기간 선택 아래에 조회 기간 (시간대) 과 실제로 들어가는
:from·:to값이 그대로 표시됩니다. 체크박스를 켜고 끌 때마다 이 값이 바뀌는 것을 눈으로 확인할 수 있습니다. - 대시보드에서는 그 타일 바닥에 시계 아이콘이 붙고, 올려 보면 같은 값이 나옵니다. 기본 기준(DB 시간대)으로 도는 타일에는 붙지 않습니다 — 표식은 '이 타일만 다르다' 를 말할 때만 값을 갖습니다.

조회 기준과 표시 기준
조회를 어느 기준으로 보내는가와, 받은 값을 어떻게 보여 주는가는 서로 다른 축입니다.
![[내 시간대로 표시] 를 끈 표 타일 — 시각 컬럼이 DB 에 저장된 글자 그대로 보인다](https://neosql.unvus.com/attach/_assets/guide/dashboard/dash-period-03-off.png)
![[내 시간대로 표시] 를 켠 같은 표 타일 — 같은 행의 시각이 내 시간대로 옮겨져 보인다](https://neosql.unvus.com/attach/_assets/guide/dashboard/dash-period-03-on.png)
| 설정 | 바꾸는 것 |
|---|---|
| 내 시간대로 조회 | :from · :to 로 나가는 값. 조회 구간 자체가 달라집니다. |
| 내 시간대로 표시 | 받은 값의 표시. 시간대 없는 컬럼을 DB 시간대로 읽어 내 시간대로 바꿔 그립니다. 조회 구간은 그대로입니다. |
시간대가 붙은 컬럼(TIMESTAMPTZ 등)은 어느 순간인지 확정되므로 이 설정과 무관하게 늘 내 시간대로 변환해 보여 줍니다.
날짜만 · 시각만 담은 컬럼은 어느 순간도 가리키지 않으므로 옮기지 않습니다 — 옮기면 2026-09-01(DATE)이 서쪽 시간대 사용자에게 전날로 보입니다.
날짜만 담은 컬럼이나 문자열로 저장된 시각은 쿼리에서 맞춰 주세요 (CAST · TO_CHAR 등). 서버 시간대와 애플리케이션이 넣는 값이 다른 테이블도 쿼리에서 변환하는 것이 유일한 수단입니다 (예: CONVERT_TZ(:from, 'Asia/Seoul', 'UTC')).