2009-12-07 66 views
2

我需要一個FILETIME字段值,以日期時間格式通過T-SQL在SQL Server轉換SQL Server的T-SQL文件時間轉換爲datetime

我已經申請以下公式來實現的,因此適用於正值精絕( > 0)。但不知何故,這個公式不適用於負值,它返回空值。我曾試圖

SELECT LastModifiedTime, 
     CASE WHEN LastModifiedTime <= 1 THEN NULL 
     ELSE DATEADD(ms, 
        ((LastModifiedTime)/CAST(10000 AS bigint)) % 86400000, 
        DATEADD(day, (LastModifiedTime)/CAST(864000000000 AS bigint) - 109207, 0)) 
     END AS Expr1 
FROM TableName 

樣品值分別爲:

  • -9094352270227314699(沒有工作負值)
  • (正值其作品)
+0

你在哪裏看到時間戳的負值? – 2009-12-08 17:37:10

+0

該值存儲在列類型爲bigInt的數據庫中。這已經放在那裏與第三方軟件。 – Nagendra 2009-12-15 10:43:57

回答

1

CASE WHEN LastModifiedTime < = 1 THEN NULL

它正在做你告訴它做的事情。

+0

因爲我不知道如何在值爲-ve時將其轉換爲DateTime,所以我返回了一個NULL值。如果在值爲-ve時如何轉換爲DateTime,可以幫助我嗎? – Nagendra 2009-12-08 04:49:54

相關問題