将纪元时间戳转换为没有毫秒的日期时间?
Convert epoch timestamp to datetime without milliseconds?
首先我知道有几个问题与此类似,但其中 none 实际上展示了如何在不包括毫秒的情况下显示日期时间格式。
我有以下代码:
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()
的 return 值数据类型是动态的,它取决于为 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,CONVERT(INT, 1354320000), CAST('1970-01-01 00:00:00' AS DATETIME)),'yyyy-MM-dd HH:mm:ss')
首先我知道有几个问题与此类似,但其中 none 实际上展示了如何在不包括毫秒的情况下显示日期时间格式。
我有以下代码:
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()
的 return 值数据类型是动态的,它取决于为 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,CONVERT(INT, 1354320000), CAST('1970-01-01 00:00:00' AS DATETIME)),'yyyy-MM-dd HH:mm:ss')