将 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 时间的整数转换为 Athena (Presto) 中的时间戳?