Как вывести DATEADD с определенной точностью? - PullRequest
0 голосов
/ 26 мая 2019

У меня есть процедура, которая вызывается из внешнего приложения.Процедура имеет параметр типа bigint.В процедуре я вставляю время в свою таблицу в столбец типа «время».Чтобы преобразовать bigint во время, я использую DATEADD:

DATEADD(S, @piHMSTime, '19700101')

Все работает отлично, но я получаю время в своей таблице, как это 22: 59: 57.0000000.Как мне установить необходимую точность?Мне нужно всего несколько секунд или, возможно, 2 цифры после точки.

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

Внешнее приложение отправляет вам количество секунд с 1970-01-01. Пока это не изменится, вы не сможете получить больше точности.

Если вы можете заставить внешнее приложение передавать вам миллисекунды с 1970-01-01, вы можете использовать показанную здесь функцию .

0 голосов
/ 26 мая 2019

Не беспокойся об этом. Сохраняемое вами значение использует внутренний формат.

Если вы хотите видеть время только в секундах, используйте convert():

convert(varchar(8), timecol, 114)

Если столбец определен как time, то по умолчанию задано семь цифр точности для секунд (100 наносекунд). Если вам нужны только секунды, используйте time(0):

alter table t alter column timecol time(0);
...