我在Unix時間戳轉換爲SQL服務器時間戳的問題。轉換時代時間戳到SQL Server(人類可讀的格式)
我在excel表數據,我將通過一個工具導入數據。所以我正在尋找一個代碼或語法,可以將該時代的時間戳轉換爲SQL服務器的時間戳。
我有相同的格式3名不同的列。我如何更改這些列中的值。
例如:
- 大紀元時間戳--- 1291388960
- SQL服務器時間戳--- 2010-12-03 15:09:20.000
我在Unix時間戳轉換爲SQL服務器時間戳的問題。轉換時代時間戳到SQL Server(人類可讀的格式)
我在excel表數據,我將通過一個工具導入數據。所以我正在尋找一個代碼或語法,可以將該時代的時間戳轉換爲SQL服務器的時間戳。
我有相同的格式3名不同的列。我如何更改這些列中的值。
例如:
我有相同的格式3名不同的列。我如何更改這些列中的值。
要更新表中的3列,可以配對DATEADD秒的時期(1970年1月1日)與列名,即
update tbl set
datetimecol1 = dateadd(s, epochcol1, '19700101'),
datetimecol2 = dateadd(s, epochcol2, '19700101'),
datetimecol3 = dateadd(s, epochcol3, '19700101')
不能到位更新,因爲一個BIGINT列不能也是一個日期時間列。您必須將它們更新爲另外3列。對於
SELECT DATEADD(ss, 1291388960, '19700101')
...指定1月1日,1970年的日期在這個例子中,它在YYYYMMDD f爲提供ORMAT。
DATEADD將返回一個DATETIME數據類型,所以如果您有一個表&列建立 - 您可以根據您的需要使用函數來INSERT/UPDATE。提供詳細信息,我會澄清。一旦您有DATETIME可以使用,您可以使用CAST or CONVERT在TSQL中格式化日期。
感謝給我的語法,但我有大約20萬條記錄.....我怎麼可以轉換所有那些? – Shahsra 2011-01-24 22:25:31
@Shahsra:取決於你想做什麼 - 如果這是暫時的,請使用臨時表。否則,您需要一個列來轉儲數據 - 通過向現有表添加列或從原始數據克隆新表。你必須提供細節。 – 2011-01-24 22:34:16