从 SQL Server 2008 中的日期时间字段中删除毫秒
Remove milliseconds from date time field in SQL Server 2008
我有一个字段 'login' 当前显示日期时间为“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 个零。
有什么想法吗?
要获得非常具体的格式,有时您必须转换并使用字符串。通常,您会希望 return 本机格式并让客户端应用显示格式。使用简单的字符串操作:
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))
要删除毫秒,您可以使用 smalldatetime:cast(login as smalldatetime)
要同时删除秒数,请使用 datetime2(0):cast(login as datetime2(0))
我有一个字段 'login' 当前显示日期时间为“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 个零。 有什么想法吗?
要获得非常具体的格式,有时您必须转换并使用字符串。通常,您会希望 return 本机格式并让客户端应用显示格式。使用简单的字符串操作:
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))
要删除毫秒,您可以使用 smalldatetime:cast(login as smalldatetime)
要同时删除秒数,请使用 datetime2(0):cast(login as datetime2(0))