You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2012中如何将整数时间戳转换为指定格式DateTime

解决SQL Server 2012中Unix时间戳转指定日期格式的问题

嘿,你的思路是对的——用DATEADD把Unix时间戳(从1970-01-01开始累计的秒数)转成datetime类型完全没问题,但SQL Server默认的datetime显示格式不是你想要的dd-mm-yyyy hh:mm:ss,所以需要额外做一步格式转换。

给你两种实用的方法:

方法1:用FORMAT函数(直观易读)

SQL Server 2012及以上版本支持FORMAT函数,能直接指定输出格式,语法非常清晰:

SELECT FORMAT(DATEADD(SS, 1512543210, '1970-01-01 00:00:00'), 'dd-MM-yyyy HH:mm:ss') AS FormattedDatetime
FROM sampledb;

这里要注意:

  • MM代表月份(小写mm是分钟,别搞混)
  • HH是24小时制的小时数,和你的示例格式匹配

方法2:用CONVERT函数(性能更优)

如果你的数据集很大,FORMAT函数的性能可能稍弱,这时推荐用CONVERT加样式号的组合:

SELECT CONVERT(VARCHAR(10), DATEADD(SS, 1512543210, '1970-01-01 00:00:00'), 105) + ' ' + 
       CONVERT(VARCHAR(8), DATEADD(SS, 1512543210, '1970-01-01 00:00:00'), 108) AS FormattedDatetime
FROM sampledb;

解释一下:

  • 样式号105对应dd-mm-yyyy格式的日期部分
  • 样式号108对应hh:mm:ss格式的时间部分
  • 把两部分用空格拼接,就得到了你想要的完整格式

两种方法都能输出你期望的06-12-2017 00:00:00结果,根据你的数据量选合适的就行~

内容的提问来源于stack exchange,提问作者Abdul Rashid A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:49:27