微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将纪元时间戳转换为没有毫秒的日期时间?

如何解决将纪元时间戳转换为没有毫秒的日期时间?

首先,我知道有几个与此类似的问题,但没有一个实际显示如何在不包括毫秒的情况下显示日期时间格式。

我在下面有这个代码

SELECT CONVERT(
   DATETIME,dateadd(SS,CONVERT(INT,1354320000),CAST('1970-01-01 00:00:00' as datetime)),120
)

但是,代码包括毫秒,但我需要格式像这样 yyyy-mm-dd hh:mm:ss

有人知道解决这个问题的有效方法吗?

解决方法

您可以尝试使用适当的数据类型。如 documentation 中所述,DATEADD() 的返回值数据类型是动态的,它取决于为 date 参数提供的参数。

SELECT DATEADD(
   second,CONVERT(int,1354320201),CAST('1970-01-01T00:00:00' AS datetime2(0))
)

结果:

2012-12-01 00:03:21
,

试试SMALL DATETIME

SELECT CAST(DATEADD(SS,CONVERT(INT,1354320000),CAST('1970-01-01 00:00:00' AS DATETIME))AS SMALLDATETIME)

另外,通过使用FORMAT

SELECT FORMAT(DATEADD(SS,CAST('1970-01-01 00:00:00' AS DATETIME)),'yyyy-MM-dd HH:mm:ss')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。