Sql server 是否将历元时间戳转换为无毫秒的日期时间?

Sql server 是否将历元时间戳转换为无毫秒的日期时间?,sql-server,datetime,epoch,Sql Server,Datetime,Epoch,首先,我知道有几个问题与此类似,但没有一个真正显示如何在不包含毫秒的情况下显示日期时间格式 我有以下代码: SELECT CONVERT( DATETIME, dateadd(SS,CONVERT(INT, 1354320000), CAST('1970-01-01 00:00:00' as datetime)), 120 ) 但是,代码包含毫秒,但我需要的格式类似于yyyy-mm-dd hh:mm:ss 有人知道一种有效的方法吗?您可以尝试使用适当的数据类型。如中所述,DA

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

我有以下代码:

SELECT CONVERT(
   DATETIME,
   dateadd(SS,CONVERT(INT, 1354320000), CAST('1970-01-01 00:00:00' as datetime)),
   120
)
但是,代码包含毫秒,但我需要的格式类似于
yyyy-mm-dd hh:mm:ss


有人知道一种有效的方法吗?

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

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

2012-12-01 00:03:21

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

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

2012-12-01 00:03:21

尝试小日期时间

SELECT CAST(DATEADD(SS,CONVERT(INT, 1354320000), CAST('1970-01-01 00:00:00' AS DATETIME))AS SMALLDATETIME)
另外,通过使用格式

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

尝试小日期时间

SELECT CAST(DATEADD(SS,CONVERT(INT, 1354320000), CAST('1970-01-01 00:00:00' AS DATETIME))AS SMALLDATETIME)
另外,通过使用格式

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

使用
datetime2(0)
代替
datetime
也是一种选择。啊,宾果!,不知道我怎么会不去想那些。谢谢你,使用
datetime2(0)
代替
datetime
也是一个选项。啊,宾果!,不知道我怎么会不去想那些。谢谢各位