2010-11-21 3 views
0

Использование vs2008 У меня есть база данных SQL Server, прикрепленная к моему веб-приложению. Я хочу использовать вычисляемый столбец времени в базе данных, по линиям:Расчетный столбец времени в SQL Server

  • timenow 1 колонка
  • hoursleft еще один столбец
  • timeend будет еще один столбец.

Я хочу, чтобы время = timenow + hoursleft.

Возможно ли это сделать, и если да, то какая бы формула заключалась в том, чтобы я входил в поле вычисленного столбца, и какой тип данных будет иметь столбцы, timenow и timeend, я ожидал бы, что это будет время (7) и hoursleft int. Но верно ли это? Спасибо за любую помощь.

+1

Какая ** версия ** SQL Server ?? SQL Server 2008 представил новые типы данных, такие как 'TIME', которые были бы идеальны для этого сценария –

ответ

0
  • TimeNow это тип данных дата и время, заполняется функцией GetUtcDate().
  • HoursLeft - это int, заполненный по мере необходимости.
  • TimeEnd - это вычисленный столбец типа datetime, рассчитанный как DateAdd (hh, HoursLeft, TimeNow).
0

Вы бы использовать это, чтобы вычислить timeend от 2 существующих колонн hoursleft и timenow

CAST(DATEADD(hour, hoursleft, timenow) AS time(7)) 

DATEADD возвращаемого типа

Возвращаемых типа данных типа данных даты аргумента

Таким образом, явный CAST, вероятно, не нужен, если timenow - это время (7), как вы упомянули

DATEADD(hour, hoursleft, timenow)