如何在TSQL中截断秒?

How to truncate seconds in TSQL?

提问人:ob213 提问时间:1/7/2012 更新时间:3/24/2023 访问量:9638

问:

我有时间,选择cast(SYSDATETIME() AS time) 14:59:09.2834595

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

T-SQL 日期时间

评论


答:

11赞 dknaack 1/7/2012 #1

描述

可以使用 T-SQL 函数。convert

样本

PRINT convert(varchar(5), SYSDATETIME(), 108)

会给你hh:mm

更多信息

0赞 Nick Vaccaro 1/7/2012 #2

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

SELECT CAST(DATEPART(hour, SYSDATETIME()) + ':' + DATEPART(minute, SYSDATETIME()) AS DATETIME)
1赞 Mikael Eriksson 1/7/2012 #3
select cast(left(cast(SYSDATETIME() AS time), 5) as time)
4赞 Daniel Leach 3/31/2017 #4

如果要截断秒数,但仍具有 T-SQL Date 数据类型,请先将日期从日期“0”转换为分钟数,然后将分钟数加回“0”。此答案不需要任何额外的解析/转换。此方法适用于截断其他部分,只需更改 MINUTE。 例:SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, '2016-01-01 23:22:56.997'), 0)

评论

2赞 Spivonious 9/22/2017
令我惊讶的是,其他答案都将日期转换为各种字符串,而不是这种简单明了的解决方案。
0赞 pcl 2/16/2021
解决方案的现场
0赞 Danil Suhomlinov 3/24/2023 #5
SELECT FORMAT(time_column, 'yyyy-MM-ddThh:mm:00.000Z') from table

评论

1赞 Jeff Moden 3/25/2023
请小心...FORMAT() 函数至少比使用 CONVERT() 想出的任何其他方法慢 17 倍。
0赞 Tyler2P 3/25/2023
通过添加有关代码的作用以及它如何帮助 OP 的更多信息,可以改进您的答案。