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

Sha*_*sra 21 sql t-sql sql-server

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

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

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

例如:

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

Ric*_*iwi 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')
Run Code Online (Sandbox Code Playgroud)

由于bigint列也不能是datetime列,因此无法更新.您必须将它们更新为3个其他列.


OMG*_*ies 18

使用DATEADD函数:

SELECT DATEADD(ss, 1291388960, '19700101')
Run Code Online (Sandbox Code Playgroud)

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

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