В SQL Server 2008 тип данных time
имеет необязательный аргумент точности (по умолчанию 7). При этом вы можете контролировать, сколько дробных десятичных знаков хранятся и отображаются.
DECLARE @time time(3)
SET @time = GETDATE()
PRINT @time
Выше будет напечатано это,
10:47:25.347
В документации сказано, что наименьшая точность равна time(0)
. Это будет хранить и печатать 10:47:25
.
Можно ли еще снизить точность, исключить / обнулить секунды: 10:47
?
Я знаю, что это можно сделать вручную, добавив ограничение (DATEPART(seconds, @time) = 0
), выполнив математические операции при вводе данных, чтобы обнулить секунды, и вручную отформатировать при печати, но я ищу более простой способ просто определить поле в таблице как «часы и минуты», почти так же, как тип date
позволяет определять поле как «только дата, без компонента времени».