Oracle, PostgreSQL 및 SQL Server에서 타임스탬프를 비교하는 일반적인 방법
타임스탬프가 특정 날짜 범위에 해당하는지 확인하는 SQL 쿼리를 작성하고 있습니다.
PostgreSQL에 기록했지만 Oracle 및 SQL Server에서는 작동하지 않습니다.
AND creation_date < (CURRENT_TIMESTAMP - interval '5 days')
AND creation_date >= (CURRENT_TIMESTAMP - interval '15 days')
다른 데이터베이스 간에 타임스탬프를 비교하는 일반적인 방법이 있습니까?
저는 SQL Server 전문가는 아니지만 Oracle 및 Postgres에서 작동하는 것으로 알고 있으며 MSSQL에서 작동할 수도 있지만 ATM을 테스트할 방법이 없습니다.
AND creation_date < (CURRENT_TIMESTAMP - interval '5' day)
AND creation_date >= (CURRENT_TIMESTAMP - interval '15' day)
또는 타임스탬프 대신 날짜 유형을 사용하는 경우 이 작업을 수행할 수 있지만 MSSQL에서는 작동하지 않을 것으로 확신합니다.그리고 Oracle과 Pg는 DATE 유형이 상당히 다릅니다.
AND creation_date < CURRENT_DATE - 5
AND creation_date >= CURRENT_DATE - 15
OMG 포니에 대한 설명에서 언급했듯이, 타임스탬프가 아닌 날짜 유형에만 추가할 수 있습니다. (오라클은 자동으로 날짜까지 타임스탬프를 캐스트합니다.)
postgresql에서 두 타임스탬프를 비교하는 방법, 다음은 true를 반환합니다.
select to_timestamp('2010-01-01 10:10:85.123', 'YYYY-MM-dd HH:MI:SS.MS') <
to_timestamp('2012-01-01 10:10:85.123', 'YYYY-MM-dd HH:MI:SS.MS');
true를 반환합니다. 왜냐하면2012
다음 이후입니다.2010
저는 모든 데이터베이스 엔진에서 작동하는 공통 구문이 있다고 생각하지 않습니다.SQL Server에서는 다음과 같이 작업합니다.
AND creation_date BETWEEN DateAdd(dd, -5, GetUtcDate()) AND DateAdd(dd, -15, GetUtcDate())
오라클에 대해 잘 모르겠어요...
Oracle(이 두 솔루션을 모두 테스트했습니다)
AND (creation_date BETWEEN sysdate-15 AND sysdate-6)
이 구문도 유효합니다.
AND (creation_date BETWEEN current_timestamp - INTERVAL '15' DAY
AND current_timestamp - INTERVAL '6' DAY)
SYSDATE 및 CURRENT_TIMESTAMP는 동의어입니다(예: 주석 참조).
BETWEEN은 경계를 포함한 값을 반환합니다.날짜-15에서 날짜-5 사이의 값을 찾고 있으므로 BETWEEN을 사용할 때 -15에서 -6 사이의 값을 지정해야 합니다.BETWEEN 식에 상한 -5를 사용한 답은 틀렸습니다.
select * from timing where (db_time < CURRENT_DATE) AND (db_time > (CURRENT_DATE - INTERVAL '1' DAY)) ;
다시 말씀드리지만 Oracle 전용입니다. 시간이 TIMESTAMP(3) 데이터 유형이라고 가정하면 이 작업을 수행할 수 있습니다.
select * from MYTABLE where intime >= to_timestamp('2014-10-01 7:00:56', 'YYYY-MM-dd HH24:MI:SS')
언급URL : https://stackoverflow.com/questions/2505382/common-way-to-compare-timestamp-in-oracle-postgresql-and-sql-server
'programing' 카테고리의 다른 글
여러 Git 저장소 결합 (0) | 2023.06.25 |
---|---|
프로젝트에서 올바른 GoogleService-Info.plist를 찾을 수 없습니다. (0) | 2023.06.25 |
Oracle SQL에서 지정된 열을 모두 선택하는 것이 잘못된 이유는 무엇입니까? (0) | 2023.06.25 |
오라클에서 UTF8을 표시하도록 세션을 변경하려면 어떻게 해야 합니까? (0) | 2023.06.25 |
GitHub에서 Git 커밋 메시지 편집 (0) | 2023.06.25 |