【问题标题】:Convert Unix Time column to UTC in SQL在 SQL 中将 Unix 时间列转换为 UTC
【发布时间】:2014-09-12 06:29:42
【问题描述】:

我有一个带有 Unix 时间戳列的导入表。我想将该列转换为 UTC 时间。这是我目前所拥有的。

select dateadd(S, [startime], '1970-01-01') from table

这会以所需格式返回输出,但我不确定如何永久更改该列...如果可能的话。

【问题讨论】:

  • 您使用的是哪个 RDBMS? (MySQL 有一个用于该转换的内置函数:from_unixtime()
  • MSSQL。马修为我解决了这个问题。
  • 根据定义,Unix 时间 UTC。也许您实际上是指某种显示格式转换?

标签: sql sql-server unix-timestamp utc


【解决方案1】:

您需要添加一个新的缓冲列。

ALTER TABLE [tablename] ADD [starttimeDT] DATETIME

然后更新那个缓冲列的值。

UPDATE [tablename] SET starttimeDT = dateadd(S, [startime], '1970-01-01')

然后删除旧列,一旦你检查所有数据都正确(确保你这样做,因为一旦你删除了列,就没有回头路了)。

ALTER TABLE [tablename] DROP COLUMN starttime

然后将缓冲区列重命名为旧名称。

sp_rename 'starttimedt', 'starttime', 'COLUMN'

【讨论】:

  • @user3638757 太好了!乐意效劳。请接受此答案,以帮助将来寻找类似解决方案的人,更不用说,将这篇文章从未答复的队列中删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
  • 2022-12-12
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多