我有一個名爲「EventLog」的表,其名稱爲nDateTime,其類型爲int
。在SQL Server 2012中將整數值轉換爲DateTime
這是表「事件日誌」 一些值:
-----------------
| nDateTime |
-----------------
| 978307200 |
-----------------
| 978307219 |
-----------------
| 978513562 |
-----------------
| 978516233 |
-----------------
| 978544196 |
-----------------
| 1450379547 |
-----------------
| 1472299563 |
-----------------
| 1472299581 |
-----------------
| 1472300635 |
-----------------
| 1472300644 |
-----------------
| 1472300673 |
-----------------
我需要DateTime值,我嘗試了下面的語句,但我收到這些錯誤:
測試#1:
SELECT CONVERT(DATETIME, CONVERT(CHAR(8), nDateTime), 103) AS 'Formatted date'
FROM EventLog
錯誤說:
Conversion failed when converting date and/or time from character string.
測試#2:從here修改:
SELECT CONVERT(DATETIME, nDateTime, 103) AS 'Formatted date'
FROM EventLog
而且測試#3雲:
SELECT CAST(nDateTime AS datetime) AS 'Formatted date'
FROM EventLog
的duplicate question不回答我的問題,因爲(包括,測試#2和測試#3)產生此錯誤:
Arithmetic overflow error converting expression to data type datetime.
我承認我從來沒有見過像Date這樣的價值,爲此,我在如何着手中感到困惑。
我的問題是:如何從樣本數據中獲取有效的DateTime值?
似乎是一個重複:http://stackoverflow.com/questions/7830002/how-to -convert-int-to-date-in-sql-server-2008其中指出:「你不能直接將整數值轉換爲日期,但你可以先將它轉換爲日期時間然後再轉換爲日期類型」...... 「'選擇強制類型轉換(日期時間爲40835,日期時間爲日期)'」SQL Server 2008 vs 2012版本以外的其他''「 – xQbert
@xQbert我已經檢查過這個問題,但出現了」將算術溢出錯誤轉換爲數據類型datetime.'。如果我聽起來很粗魯,我的英語不太好_ –
1)「978307200」有9個字符,而不是8個。2)你能否告訴我們數字來自哪裏以及它代表什麼,例如,從某個日期開始有幾毫秒的時間? –