2017-01-10 3 views
0

SQL에서 두 날짜 간의 차이를 초로 계산해야합니다. 문제는 서로 다른 환경에서 서로 다른 데이터베이스 엔진을 사용하여 동일한 쿼리가 실행된다는 것입니다.다양한 SQL 데이터베이스 (MySQL, Oracle, H2)에서 두 날짜 간의 시간 차이를 초 단위로 계산합니다.

로컬에는 MySQL이 있으며, 프로덕션 환경에는 Oracle, 테스트에는 H2가 있습니다.

TIME_TO_SEC 함수를 사용하여 쿼리를 작성했지만 완벽하게 작동했지만 통합 테스트가 실패했습니다. MySQL 대신 H2가 있었기 때문입니다. 또한 DATEDIFF 함수를 사용하려고 시도했지만 구현은이 모든 데이터베이스에서 서로 다릅니다.

모든 데이터베이스에 대해 단일 범용 쿼리를 작성할 수 있습니까?

+0

나는 모른다. 시도해 봤어? – RiggsFolly

+2

하나의 DB에서 완벽하게 실행되고 프로덕션 환경에서 다른 응용 프로그램을 실행하는 응용 프로그램을 어떻게 유지 관리 할 수 ​​있습니까? 그냥기도하는거야? – milheiros

+1

오해해야합니다! 테스트 데이터베이스로 MYSQL 데이터베이스, 프로덕션 환경에 Oracle 데이터베이스, 다른 것으로 H2가 있습니다. 그 맞습니까? – RiggsFolly

답변

1

나는 60 + extract(SECOND FROM (b.created_ts)) - extract(SECOND FROM a.created_ts)을 사용했으며 모든 데이터베이스에서 작동합니다.

-1

오라클에서만 테스트 해 볼 수 있습니다. 이게 당신을 도와 줍니까?

SELECT (SYSDATE - (SYSDATE-1)) * 60 * 60 * 24 
    FROM DUAL