복붙노트

[SQL] 타임 스탬프 형식 열에서 날짜 시간 값을 얻을 수있는 방법이 있나요?

SQL

타임 스탬프 형식 열에서 날짜 시간 값을 얻을 수있는 방법이 있나요?

나는 알 수 컬럼을 가지고 있지 않는 테이블에서 선택이 필요 행이 삽입되었을 때, 오직 타임 스탬프 열 (같은 값 : 0x0000000000530278). 일부 데이터는 테이블 어제 가져온 지금은 정확히 가져온 무엇인지 찾아야 :(

오직 타임 스탬프 정보를 사용하여 할 수있는 방법이 있나요? 여기에 그 발견 :

아마도 특정시기에 타임 스탬프 값 무엇인지 찾을 수있는 방법은 무엇입니까? 그건 선택을 형성하기 위해 도움이 될 것이다. 아니면 잘 알려진 해결책이 무엇입니까?

해결법

  1. ==============================

    1.은 Transact-SQL timestamp 데이터 형식은 시간과 관련된 값 이진 데이터 유형입니다.

    은 Transact-SQL timestamp 데이터 형식은 시간과 관련된 값 이진 데이터 유형입니다.

    그래서 귀하의 질문에 대답하기 : 타임 스탬프 형식 열에서 날짜 시간 값을 얻을 수있는 방법이 있나요?

    내 대답은 아니오 야

  2. ==============================

    2.SQL Server 2005의 타임 스탬프 데이터 형식 rowversion의 동의어이며, 자동으로 각 행의 갱신으로 증가 단지 숫자입니다.

    SQL Server 2005의 타임 스탬프 데이터 형식 rowversion의 동의어이며, 자동으로 각 행의 갱신으로 증가 단지 숫자입니다.

    당신은 그 값을 볼 수 BIGINT에 캐스팅 할 수 있습니다.

    당신이 새로운 또는 업데이트 된 행에 대해, 당신은 아마 각 업데이트와 그 열을 업데이트하기 위해 다른 날짜 열 (마지막 업데이트) 및 트리거를 추가해야 원하는 것을 얻을합니다.

    과거에 이미 삽입 된 행의 난 당신이 정확한 시간을 찾기 위해 무언가를 할 수 있다고 생각하지 않습니다.

  3. ==============================

    3.나는 / 변환 할 수 없습니다 날짜 시간에 타임 스탬프를 캐스팅 두려워. 그들은 호환되지 않는 완전히 다른 사용과 구현이있다.

    나는 / 변환 할 수 없습니다 날짜 시간에 타임 스탬프를 캐스팅 두려워. 그들은 호환되지 않는 완전히 다른 사용과 구현이있다.

    이 링크를 참조하십시오 http://www.sqlteam.com/article/timestamps-vs-datetime-data-types

    온라인 책도 http://msdn.microsoft.com/en-us/library/aa260631.aspx 말한다

  4. ==============================

    4.당신에게 또 다른 대답은 질문 :

    당신에게 또 다른 대답은 질문 :

    타임 스탬프 열은 복구 (백업이없는 등)의 유일한 자원 인 경우 다음과 같은 논리를 사용하려고 할 수 있습니다

    타임 스탬프는 타임 스탬프 단순히 열을 포함하는 테이블에서 수행되는 각 삽입 또는 업데이트 동작에 대해 증가하는 카운터 값이다.

    어제 무슨 일이 있었 데이터 가져 오기 여러 기록 중 하나 개를 삽입했다 경우에 당신은 예컨대 같은 타임 스탬프 열에서 숫자의 순서를 볼 수 있습니다 :

    0x00000000000007D1
    0x00000000000007D2
    0x00000000000007D3
    0x00000000000007D4
    0x00000000000007D5
    

    가장 최근의 순서는 (물론이 guarantied되지 않았습니다의) 귀하의 추가 데이터가 될 수 있습니다 당신은 사기꾼 다른 것들에 관심있는 레코드를 식별하는 데 (당신이 그들을 사용하는 경우 자동 증가 컬럼처럼) 그 지식을 결합합니다.

  5. ==============================

    5.다른 사람들은 올바르게 타임 스탬프 이진 카운터이라고 지적했다. 데이터베이스의 모든 테이블에, 당신은 타임 스탬프와이 기록 된 날짜가 있다면 그럼에도 불구하고, 당신은 날짜 범위에있는 타임 스탬프에서 이동하는 정보의 조각을 사용할 수 있습니다. 로그 테이블은이 목적을 위해 좋은 후보입니다. 가져 오기 테이블을 가정하면 다음과 같은 쿼리를 사용할 수 있습니다, "송장"입니다 :

    다른 사람들은 올바르게 타임 스탬프 이진 카운터이라고 지적했다. 데이터베이스의 모든 테이블에, 당신은 타임 스탬프와이 기록 된 날짜가 있다면 그럼에도 불구하고, 당신은 날짜 범위에있는 타임 스탬프에서 이동하는 정보의 조각을 사용할 수 있습니다. 로그 테이블은이 목적을 위해 좋은 후보입니다. 가져 오기 테이블을 가정하면 다음과 같은 쿼리를 사용할 수 있습니다, "송장"입니다 :

    WITH TS 
    AS
    (
    SELECT 
        L1.LastDateUpdated, COALESCE(L2.LastDateUpdated, {TS '2099-12-31 00:00:00'}) as LastDateUpdatedTo,
        L1.[TIMESTAMP], L2.[TIMESTAMP] as [TIMESTAMPTo]
    FROM 
    (
        SELECT L1.[LastDateUpdated]
              ,L1.[TIMESTAMP]
              ,ROW_NUMBER() OVER (ORDER BY L1.[LastDateUpdated]) ID
        FROM [Log] L1
    ) L1
    left join 
    (
        SELECT L2.[LastDateUpdated]
              ,L2.[TIMESTAMP]
              ,ROW_NUMBER() OVER (ORDER BY L2.[LastDateUpdated]) ID
        FROM [Log] L2
    ) L2 
        ON L1.ID = L2.ID - 1
    )
    SELECT TS.LastDateUpdated, TS.LastDateUpdatedTo, * from [Invoices]
        inner join TS ON [Invoices].Timestamp between TS.Timestamp and 
    TS.TIMESTAMPTo
    ORDER BY TS.TIMESTAMPTo DESC
    
  6. ==============================

    6.나는 당신의 가장 좋은 방법은 삽입 전에에서 백업을 복원하고 현재 테이블과 백업 된 테이블을 비교하는 것입니다 생각합니다.

    나는 당신의 가장 좋은 방법은 삽입 전에에서 백업을 복원하고 현재 테이블과 백업 된 테이블을 비교하는 것입니다 생각합니다.

  7. ==============================

    7.타임 스탬프에 의해 새로운 행을 식별하려면 사전에 있었다 타임 스탬프를 추적해야합니다. 당신이 할 수있는 핀치에서 :

    타임 스탬프에 의해 새로운 행을 식별하려면 사전에 있었다 타임 스탬프를 추적해야합니다. 당신이 할 수있는 핀치에서 :

    오탐 (false positive)의 작은 위험은 아무것도는 DB에서 진행되고있는 경우로 이것은 당신에게 합리적으로 좋은 차를 얻을 것이다.

    보다 강력한 검사를 위해 당신은 당신에게 충돌의 매우 낮은 확률로 변화를주고 (이 문제에 대한 논의 생일 공격에이 위키 피 디아 기사 참조) 행 내용에 대한 Hashbytes으로 MD5 또는 SHA-1 해시를 계산할 수 있습니다.

  8. ==============================

    8.나는 너무 늦기하지만 힘 도움말 다른 사람이 알고있다.

    나는 너무 늦기하지만 힘 도움말 다른 사람이 알고있다.

    타임 스탬프 / RowVersion는에서 BigInt에 주조 할 수 있지만, 어떤 의미에서 그것은 날짜와 비교 될 수 없습니다.

    다음 문은 MSDN에서 가져옵니다

    자세한 내용은 여기를 참조

  9. from https://stackoverflow.com/questions/177970/is-there-a-way-to-get-datetime-value-from-timestamp-type-column by cc-by-sa and MIT license