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