将Epoch时间戳转换为sql server(人类可读格式)

时间:2011-01-24 22:14:32

标签: sql sql-server tsql

我在将Unix时间戳转换为sql server时间戳时遇到问题。

我在excel表中有数据,我将通过工具导入该数据。所以我正在寻找可以将Epoch时间戳转换为sql server时间戳的代码或语法。

我有3个不同的列,格式相同。如何更改这些列中的值。

例如:

  • 大纪元时间戳--- 1291388960
  • sql server timestamp --- 2010-12-03 15:09:20.000

2 个答案:

答案 0 :(得分:21)

  

我有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列。

答案 1 :(得分:16)

使用DATEADD function

SELECT DATEADD(ss, 1291388960, '19700101')

...指定1970年1月1日的日期。在此示例中,它以YYYYMMDD格式提供。

DATEADD将返回DATETIME数据类型,因此如果你有一个表&列已建立 - 您可以根据需要使用该功能进行INSERT / UPDATE。提供详细信息,我会澄清。有了DATETIME后,您可以使用CAST or CONVERT格式化TSQL中的日期。