SQL: 타임스탬프 날짜에서 1일 빼기
저는 Postgresql용 Datagrip을 사용하고 있습니다.날짜 필드가 타임스탬프 형식인 테이블이 있습니다.(ex: 2016-11-01 00:00:00)
다음을 수행할 수 있기를 바랍니다.
- 수학 연산자를 적용하여 1일 빼기
- 오늘-130일의 시간 창을 기준으로 필터링합니다.
- 스탬프의 hh/mm/ss 부분 없이 표시(2016-10-31)
현재 시작 쿼리:
select org_id, count(accounts) as count, ((date_at) - 1) as dateat
from sourcetable
where date_at <= now() - 130
group by org_id, dateat
그((date_at)-1)
1행의 절은 다음과 같습니다.
[42883] 오류: 연산자가 존재하지 않습니다. 시간대가 없는 타임스탬프 - 정수 힌트: 지정된 이름과 인수 유형과 일치하는 연산자가 없습니다.명시적 유형 캐스트를 추가해야 할 수 있습니다.위치: 69
그now()
절은 유사한 메시지를 생성합니다.
[42883] 오류: 연산자가 존재하지 않습니다. 시간대가 있는 타임스탬프 - 정수 힌트: 지정된 이름과 인수 유형과 일치하는 연산자가 없습니다.명시적 유형 캐스트를 추가해야 할 수 있습니다.위치: ...
유형 캐스트에 대한 온라인 가이드는 특별히 도움이 되지 않습니다.입력해 주셔서 감사합니다.
사용INTERVAL
타자를 치다예:
--yesterday
SELECT NOW() - INTERVAL '1 DAY';
--Unrelated: PostgreSQL also supports some interesting shortcuts:
SELECT
'yesterday'::TIMESTAMP,
'tomorrow'::TIMESTAMP,
'allballs'::TIME AS aka_midnight;
그러면 다음을 수행할 수 있습니다.
SELECT
org_id,
count(accounts) AS COUNT,
((date_at) - INTERVAL '1 DAY') AS dateat
FROM
sourcetable
WHERE
date_at <= now() - INTERVAL '130 DAYS'
GROUP BY
org_id,
dateat;
팁들
팁 1
피연산자를 여러 개 추가할 수 있습니다.예: 현재 달의 마지막 날을 얻는 방법은 무엇입니까?
SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';
팁 2
다음을 사용하여 구간을 만들 수도 있습니다.make_interval
함수, 런타임에 함수를 만들어야 할 때 유용합니다( 리터럴을 사용하지 않음).
SELECT make_interval(days => 10 + 2);
SELECT make_interval(days => 1, hours => 2);
SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);
추가 정보:
datatype-datetime(특수 값)입니다.
캐스팅할 수 있습니다.TIMESTAMP
아주DATE
당신이 뺄 수 있게 해주는 것.INTEGER
그것으로부터.
예를 들어 어제를 가져오는 경우:
now()::DATE - 1
따라서 다음과 같은 질문을 할 수 있습니다.
SELECT org_id, date_at::DATE - 1 AS dateat, COUNT(accounts) AS count
FROM sourcetable
WHERE date_at <= NOW()::DATE - 130
GROUP BY 1, 2
언급URL : https://stackoverflow.com/questions/46079791/sql-subtracting-1-day-from-a-timestamp-date
'programing' 카테고리의 다른 글
Bash에서 백 틱에 해당하는 cmd/PowerShell은 얼마입니까? (0) | 2023.05.03 |
---|---|
열 이름별 판다 데이터 프레임 가입 (0) | 2023.05.03 |
몽구스에서 "LIKE" 연산자를 사용하려면 어떻게 해야 합니까? (0) | 2023.05.03 |
스위프트에서 초기화 중에 didSet을 호출할 수 있습니까? (0) | 2023.04.28 |
셸 명령이 실행될 때 에코하는 방법 (0) | 2023.04.28 |