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

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

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

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

例如:

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

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案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:取决于您想要做什么——如果这是临时的,请使用临时表。否则,您需要一列将数据转储到 - 通过向现有表添加一列或从原始表克隆的新表。您必须提供详细信息。
      • 非常感谢伙计...我得到了解决方案,我已经进行了更改。非常感谢您的帮助。
      猜你喜欢
      • 2020-12-12
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 2014-09-21
      相关资源
      最近更新 更多