Разница между двумя датами в часах, минутах и ​​секундах - PullRequest
0 голосов
/ 24 апреля 2020

Следующий запрос возвращает даты в виде часов, минут, секунд.

SELECT LEFT(CONVERT(VARCHAR(10),  ModifiedOn- CreatedOn, 108), 8)
AS ResultTime from AssignedRoles

У меня есть дополнительное поле в таблице AssignedRoles - "TurnAroundTime", где я хотел бы сохранить результат, сгенерированный из запрос. Является ли этот метод эффективным или использует триггер лучше, и, если нужно, объясните, как его использовать.

База данных является бэкэндом для MVC C# приложения

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Я согласен с @GMB (+1). Однако вы сохраняете (или вычисляете) это значение в виде отформатированной строки символов. Я рекомендую хранить его как значение типа данных TIME, так как это даст вам больше гибкости и возможностей в будущем. Позвольте приложению, использующему эти данные, беспокоиться о форматировании, оно справится с этим лучше.

ALTER TABLE AssignedRoles add 
 turnAroundtime as CONVERT(TIME, ModifiedOn - CreatedOn)
1 голос
/ 24 апреля 2020

Я бы порекомендовал вычисляемый столбец:

alter table AssignedRoles add 
    turnAroundtime as (left(convert(varchar(10), ModifiedOn - CreatedOn, 108), 8))

Это дает вам всегда актуальное значение, которое вам не нужно поддерживать вручную, с почти нулевым дополнительным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...