T-SQL Как обновить час в столбце SmallDateTime? - PullRequest
0 голосов
/ 14 марта 2011

скажем, у меня есть столбец SmallDateTime в моей таблице.Как обновить часы в каждой строке в T-SQL?

Ответы [ 3 ]

2 голосов
/ 14 марта 2011
  1. Получить часовую часть целевого значения.
  2. Найдите разницу между нужным часом и найденным часом.
  3. Добавьте разницу часов к целевому значению.

Сценарий:

UPDATE atable
SET datetimevalue = DATEADD(hour, @hour - DATEPART(hour, datetimevalue),
                                  datetimevalue)
WHERE ...
0 голосов
/ 14 марта 2011
UPDATE YourTableName 
SET YourSmallDateTimeColumn = DATEADD(HH, 1, YourSmallDateTimeColumn)

Добавит любое количество часов в ваш столбец.Поэтому, если вы сначала избавитесь от компонента времени:

SELECT CAST(CONVERT(char(8), YourSmallDateTimeColumn, 112) AS smalldatetime) 

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

С здесь

Чтобы добавить или вычесть часы к значению datetime или smalldatetime, вы будете использовать функцию даты DATEADD.Функция даты DATEADD возвращает новое значение даты и времени на основе добавления интервала к указанной дате.Синтаксис функции даты DATEADD выглядит следующим образом:

DATEADD ( datepart , number, date )

datepart - это параметр, который указывает, в какой части даты возвращать новое значение.В течение нескольких часов вы можете использовать либо ЧАС, либо ЧЧ.число - это значение, используемое для увеличения части даты.date - это выражение, которое возвращает значение datetime или smalldatetime или символьную строку в формате даты.

Вот пример того, как использовать функцию даты DATEADD для увеличения или уменьшения значения datetime на определенное числочасы работы:

SELECT DATEADD(HOUR, -12, GETDATE())AS [TwelveHoursAgo]
SELECT DATEADD(HH, 6, GETDATE()) AS [SixHoursLater]
0 голосов
/ 14 марта 2011
UPDATE YourTable SET YourDateColumn = DateAdd(hh, 1, YourDateColumn)

добавит 1 час к значению времени в YourDateColumn в каждой строке.

Подробнее см. на этой странице .

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