다른 데이터베이스의 날짜와의 차이를 계산하는 방법이 많이 있다는 것을 알고 있습니다. 내 문제는 동일한 SQL 쿼리를 사용하여 SQL Server와 DB2 모두에서 작동하는 방법이 필요하다는 것입니다.SQL 서버와 DB2의 두 날짜 차이 계산
매년에 나는
CURRENT_TIMESTAMP - [BIRTHDATE] AS AGETHISYEAR
을 사용할 수 있습니다 그러나 나는 또한 즉 34,4 위격 생일과 현재 날짜에 따라 소수점 형태로 사람의 나이를 알고 싶어요.
SQL Server에서 [BIRTHDATE]
의 columntype은 DATETIME
이고 DB2에서는 열 유형이 DATE
입니다.
형식은 YYYY-MM-DD
이 할 수있는 방법이 무엇입니까?
안부, 알프레드
SELECT DATEDIFF (YY, BIRTHDATE, CURRENT_TIMESTAMP)는 연도의 정수를 반환하며 소수 부분은 이해하지 못합니다. 다음 생일까지 일년 중 원하는 부분을 원하십니까? –
datediff를 일 안에하고 365.25로 나눕니다. 그러나 SQL Server와 DB2는 두 날짜의 차이점을 제공하는 서로 다른 함수를 가지고 있기 때문에 정확히 동일한 SQL을 원할 경우이 둘 중 하나를 사용할 수 없습니다. –
나는 데이터 타입이 거꾸로 있다고 생각한다. DB2에는'DATETIME'이없고, 이전 버전의 SQL 서버에는'DATE'가 없다. 당신은 SQL Server에서 그런 식으로 날짜를 빼낼 수있는 것처럼 보이지 않으며 DB2에서이를 수행하면 10 자리 숫자가 포함 된 숫자가됩니다 (나눌 필요가 있습니다). @DanBracuk - DB2에는'DATEDIFF'가 없으며 _does_에있는'TIMESTAMPDIFF'는 ** 견적 **을 리턴합니다. –