Unix(Linux) timestamp(bigint) 형식을 datetime 으로 변경하기
-
Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016
데이터를 운용하다 보면 시간(날짜)와 관련해서 다양한 데이터 형식 사용된다. 이번 포스트는 유닉스(리눅스)에서 전달받은 timestamp 형식을 SQL Server에서 datetime 형식으로 변경하는 방법에 대해서 알아본다.
Timestamp 값은 1700-01-01 00:00:00부터 시작하는 밀리세컨드(ms)값이다. dateadd() 함수를 사용하여 간단히 해결 할 수 있다. Dateadd() 함수는 int 형식을 지원하므로 ms -> s로 변경하기 위해 timestamp/1000으로 계산해야 한다.
declare @timestamp bigint set @timestamp = 1334034120644
Select dateadd(S, @timestamp/1000, '1970-01-01') |
아래와 같이 함수로 만들어서 편리하게 사용할 수 있다.
CREATE FUNCTION dbo.fn_TimestampToDateTime (@Timestamp BIGINT) RETURNS DATETIME AS BEGIN SET @Timestamp = @Timestamp/1000 RETURN (SELECT DATEADD(second,@Timestamp, CAST('1970-01-01 00:00:00' AS datetime))) END; GO |
[참고자료]
2016-05-04 / 강성욱 / http://sqlmvp.kr
SQL Server, SQL, Timestamp, datetime, convert timestamp to datetime, dateadd(), 시간함수, 타임스탬프
'SQL Server > SQL Server Tip' 카테고리의 다른 글
SQL Server Job Agent는 몇 개까지 실행이 가능할까? (0) | 2016.05.27 |
---|---|
확장이벤트 사용시 주의사항 (0) | 2016.05.14 |
SQL Server 2016 DBCC CHECK 작업 성능 향상 (0) | 2016.03.27 |
Query Rule Off를 사용한 SQL Server 옵티마이저 비활성화 (0) | 2016.03.03 |
시스템 관리자 권한이 없는 특정 프로그램에서 Trace Flag 사용하기 (0) | 2016.02.01 |