如何在TSQL中截断秒数?

如何在TSQL中截断秒数?,tsql,datetime,Tsql,Datetime,我有时间,选择cast(SYSDATETIME()作为时间) 14:59:09.2834595 截断秒的方法是什么? 14:59说明 您可以使用T-SQL函数convert 样品 将给您hh:mm 更多信息 如果需要完全减少秒数,可以使用DATEPART()函数(SQL Server)去掉小时和分钟数,然后将其追加到一起。(如果可行的话,我更喜欢dknaack的解决方案。) 如果要截断秒数,但仍具有T-SQL日期数据类型,请首先将日期转换为从日期“0”开始的分钟数,然后将分钟数添加回“0”。

我有时间,选择cast(SYSDATETIME()作为时间) 14:59:09.2834595

截断秒的方法是什么? 14:59

说明 您可以使用T-SQL函数
convert

样品 将给您
hh:mm

更多信息

如果需要完全减少秒数,可以使用DATEPART()函数(SQL Server)去掉小时和分钟数,然后将其追加到一起。(如果可行的话,我更喜欢dknaack的解决方案。)


如果要截断秒数,但仍具有T-SQL日期数据类型,请首先将日期转换为从日期“0”开始的分钟数,然后将分钟数添加回“0”。这个答案不需要任何额外的解析/转换。这种方法只需更改一分钟就可以截断其他部分。 例子:
选择DATEADD(MINUTE,DATEDIFF(MINUTE,0,'2016-01-01 23:22:56.997'),0)

我很惊讶其他答案都将日期转换为各种字符串,而不是这个简单而直接的解决方案。关注解决方案
PRINT convert(varchar(5), SYSDATETIME(), 108)
SELECT CAST(DATEPART(hour, SYSDATETIME()) + ':' + DATEPART(minute, SYSDATETIME()) AS DATETIME)
select cast(left(cast(SYSDATETIME() AS time), 5) as time)