从SQL Server 2008中的日期时间字段中删除毫秒

时间:2019-04-30 14:20:46

标签: sql sql-server sql-server-2008

我有一个字段“登录”,当前显示日期时间为“ 2019-04-26 10:20:23.050”

我只想显示'2019-04-26 10:20'

我之前已经解决了这个问题,但是找不到摘要。我现在可以找到的最接近的是

convert(datetime, CONVERT(nchar(16),login,120),120)

但这仅提供了'2019-04-26 10:20:00.000',而我希望去除最后5个零。 有什么想法吗?

2 个答案:

答案 0 :(得分:4)

要删除毫秒,您可以使用smalldatetime:cast(login as smalldatetime)

要同时删除秒,请使用datetime2(0):cast(login as datetime2(0))

答案 1 :(得分:0)

要获得非常特定的格式,有时必须转换并使用字符串。通常,您需要返回本机格式,并让客户端应用显示格式。使用简单的字符串操作:

 DECLARE @Login DATETIME ='01/01/2019 10:20:00.500'

 SELECT CAST(CAST(@Login AS DATE) AS NVARCHAR(50))+' '+
        CAST(DATEPART(HOUR,@Login) AS NVARCHAR(50))+':'+
        CAST(DATEPART(MINUTE,@Login) AS NVARCHAR(50))