Если вы действительно используете тип данных datetime2
и используете часы для хранения дней, минуты для хранения часов, секунды для хранения минут и центсекунды для хранения секунд ... Вы можете сделать это ...
DECLARE @YourDatetime datetime2(7) = '1970-01-01 01:15:00.0100000';
SELECT (DATEPART(HOUR,@YourDatetime) * 86400) +
(DATEPART(MINUTE,@YourDatetime) * 3600) +
(DATEPART(SECOND,@YourDatetime) * 60) +
(DATEPART(MILLISECOND, @YourDatetime) / 10)
Но я настоятельно предлагаю вам прекратить злоупотреблять типом данных datetime2
. Часы должны быть часами, а не днями. Надеюсь, именно поэтому вы пытаетесь делать то, что просите.
Это, однако, предполагает, что у вас нет значений с 24 или более часами, так как значение типа '1970-01-01 24:40:00.0100000'
не может быть хранится в любом типе данных Дата и Время.