TIMESTAMP
을 UTC milliseconds
으로 변환하는 DB2 함수가 있습니까?DB2 TIMESTAMP를 UTC 밀리 초로 변환하려면 어떻게해야합니까?
답변
TIMESTAMPDIFF을 사용할 수 있습니다. 다음과 같은 것 :
TIMESTAMPDIFF(1,CHAR(timestampField -
TIMESTAMP('1970-01-01-00.00.00.000000')))
유닉스 시대 이후의 밀리 초를 의미한다고 가정합니다. 필자는 이것을 테스트하지 않았기 때문에 db2 문서에만 이라고 표시되어 있기 때문에 값을 10 배로 조정해야 할 수도 있습니다. 초의 분수.
불행히도 .... 아니 (나는 원한다). 두 가지 이유 - 1)'TIMESTAMPDIFF()'의 출력은 'INTEGER'로 제한되어 있으므로 자동으로 크기를 제한합니다. _seconds_는이 시점의 끝이 2038임을 의미합니다. 2) 두 타임 스탬프의 차이 출력은 부정확 한 ** 간격 **이므로 함수가 ** 견적 ** (즉, IBM을 심각하게 의미합니까?) 만 반환 할 수 있습니다. 이는 간격이 이혼 되었기 때문입니다 일광 절약 시간 또는 윤년과 같은 필요한 정보를 결정하는 데 도움이되는 정보로부터 얻을 수 있습니다. –
@ Clockwork-Muse, 잘 설명되어 있습니다. 나는 그걸 깊이 파지 않았다. – Lucas
'TIMESTAMPDIFF()'는 최악의 경우와 같습니다. 어림짐작의 좋은 규칙은 당신이 절대 사용해서는 안된다는 것입니다. –
신기원 (1970-01-01 00:00:00) 이래로 밀리 초 수를 얻으려고한다고 가정하면이 작업을 수행하는 기본 제공 함수가 없습니다.
CREATE OR REPLACE FUNCTION utcmillis (in db2ts timestamp)
returns bigint
language sql
deterministic
no external action
return (
bigint((days(db2ts - current timezone) - days('1970-01-01-00.00.00.000000')) * 86400 + midnight_seconds(db2ts - current timezone))*1000 + microsecond(db2ts)/1000
);
아쉽게도 요일은 항상 86400 초가 아닙니다. 코드가 DST 안전하지 않습니다. 또한, IBM이 시간대를 어떻게 처리하는지는 정확하지 않습니다. 동일한 옵셋에서 모든 시간대를 동일하게 처리하는 '오프셋'정의 만 사용하는 것 같습니다. 모든 국가에서 동시에 DST가 전환되는 것은 아닙니다 ... 또한이 코드는 들어오는 타임 스탬프에 모두 시간대가 포함되어 있고 '현재'상태 인 것으로 추정 할 수 있습니다. 이제 모든 타임 스탬프가 UTC로되어 있고 시간대와 관련하여 아무 것도하지 않으면이 작업이 가능합니다. –
하루에 86,400 초가 항상 있어야하는 것은 기술적으로 정확하지만,이 UDF의 논리는 지정된 날짜/시간 (밀리 초를 제외하고 UNIX의 mktime() 함수에 대한 호출과 동일한 값을 생성합니다. 물론,'mktime()'은 초 단위 이하의 해상도를 가지고 있지 않기 때문에). –
시간대의 경우 : DB2는'CURRENT TIMEZONE' 특수 레지스터를 사용하여 시간 소인 값을 처리하는 방법을 결정합니다. DB2는 SQL.이 실행될 때 운영 체제의 시간을 조회하여'CURRENT TIMEZONE' 레지스터의 값을 설정합니다. 따라서 'VALUES CURRENT TIMEZONE' 문을 실행 한 다음 데이터베이스 서버에서 시간대를 수정하고 동일한'VALUES CURRENT TIMEZONE' 문을 다시 실행하면 DB2가 새 시간대를보고합니다. –
- 1. DateTime을 밀리 초로 변환
- 2. MySQL datetime을 밀리 초로 변환합니다.
- 3. 자바 스크립트에서 시간대를 사용하여 utc 밀리 초로 날짜를 변환하는 방법
- 4. JSTL에서 Java 날짜 객체를 밀리 초로 변환
- 5. Ecto.DateTime을 밀리 초로 변환
- 6. 반올림 밀리 초로 R 문제가 발생했습니다.
- 7. UTC 시간을 장치의 현지 시간으로 변환하려면 어떻게해야합니까?
- 8. ntp 시간을 밀리 초로 변환합니다.
- 9. datediff를 초, 밀리 초로 표시하십시오.
- 10. 초를 밀리 초로 계산 NSTimer
- 11. ULARGE_INTEGER QuadPart를 밀리 초로 변환
- 12. 날짜 유형을 긴 밀리 초로
- 13. 날짜를 밀리 초로 변환하는 방법
- 14. 문자열 시간을 밀리 초로 변환
- 15. 시간 변수를 밀리 초로 변환
- 16. Perl에서 log4j 타임 스탬프를 밀리 초로 변환하려면 어떻게해야합니까? 나는 다음과 같은 형식으로 타임 스탬프를 포함해야
- 17. datetime.now()와 파이썬으로 utc timestamp를 비교하십시오. 2.7
- 18. UTC C에서 # datetime 문자열을 밀리 초 단위로 나타내는 시간 소인 #
- 19. 자바 스크립트 날짜를 GMT 밀리 초로 변환하는 방법?
- 20. 분을 밀리 초로 변환 Java/android
- 21. ISO8601 형식을 밀리 초로 변환하는 방법은 무엇입니까?
- 22. 배치 스크립트에서 날짜를 밀리 초로 변환
- 23. TSQL 왜 VARCHAR를 DATETIME 밀리 초로 변환합니까?
- 24. 24 시간을 밀리 초로 변환하는 방법?
- 25. Haskell : UTCTime을 초와 밀리 초로 변환하십시오.
- 26. 시간 스탬프를 초 단위로 밀리 초로 변환
- 27. SQLite에서 날짜를 밀리 초로 변환하는 방법
- 28. 밀리 초로 구문 분석 변경 날짜
- 29. 인간 친화적 인 날짜를 밀리 초로 변환
- 30. FileAge를 밀리 초로 가져올 수 있습니까?
방금 SQL에서이 작업을 수행하려고 :
그러나 그것은 할 수있는 UDF를 작성하는 사소한? – Lucas
@ 루카스 : 주로 그렇습니다. 그러나 필요한 경우 로컬 함수도 만들 수 있습니다. – JSS
왜? 그리고 귀하의 응용 프로그램 계층은 무엇입니까? 모든 것을 UTC 타임 스탬프로 저장 한 다음 좋은 라이브러리 (Java의 경우 [JodaTime] (http://joda-time.sourceforge.net/)와 같은)를 사용하여 응용 프로그램 만 변환하면 최상의 결과/가장 쉬운 작업을 수행 할 수 있습니다. . –