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

Posted

技术标签:

【中文标题】将 Epoch 时间戳转换为 sql server(人类可读格式)【英文标题】:converting Epoch timestamp to sql server(human readable format) 【发布时间】:2011-01-24 22:14:31 【问题描述】:

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

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

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

例如:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

使用DATEADD function:

SELECT DATEADD(ss, 1291388960, '19700101')

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

DATEADD 将返回 DATETIME 数据类型,因此如果您已建立表和列 - 您可以根据需要使用该函数来插入/更新。提供详细信息,我会澄清。一旦你有了一个 DATETIME 可以使用,你可以使用 CAST or CONVERT 在 TSQL 中格式化日期。

【讨论】:

感谢您提供语法,但我有大约 2000 万条记录.....如何转换所有这些? @Shahsra:取决于您想要做什么——如果这是临时的,请使用临时表。否则,您需要一列将数据转储到 - 通过向现有表添加一列或从原始表克隆的新表。您必须提供详细信息。 非常感谢伙计...我得到了解决方案,我已经进行了更改。非常感谢您的帮助。

以上是关于将 Epoch 时间戳转换为 sql server(人类可读格式)的主要内容,如果未能解决你的问题,请参考以下文章

将 Epoch 时间戳转换为 DateTime

如何将时间戳从十六进制格式转换为 EPOCH 时间戳?

如何将表示 EPOCH 时间的整数转换为 Athena (Presto) 中的时间戳?

在 T-SQL 中将以毫秒为单位的 Epoch 转换为日期

如何在 Redshift 中将时间戳(具有毫秒)转换为 EPOCH

如何将文件的AIX时间戳转换为EPOCH