Как обновить дату без изменения ее времени с помощью SQL Server? - PullRequest
9 голосов
/ 03 октября 2011

У меня есть один столбец в Mytable, называемый StockDate, и его DataType - DateTime.

Итак, моя таблица содержит следующую запись:

    SID                StockDate
   -----              ------------
     1                 2011-10-02 09:44:41.170
     2                 2011-10-02 09:48:23.234

Здесь я хочу обновить только датуStockDate as "2011-09-30".Но время должно быть таким же, как оно есть.Как это сделать?Пожалуйста, мне нужны все ваши предложения.

Ответы [ 3 ]

11 голосов
/ 03 октября 2011

Разберитесь в разных днях и вычтите это ...

UPDATE
   MyTable
SET
   StockDate = DATEADD(day, DATEDIFF(day, StockDate, '20110930'), StockDate)
WHERE
   ...

Обратите внимание на использование yyyymmdd для SQL Server.

1 голос
/ 03 октября 2011

Вы можете использовать dateadd, datediff функции .

1 голос
/ 03 октября 2011

http://msdn.microsoft.com/en-us/library/ms186724(v=SQL.90).aspx

Возможно, вы могли бы использовать DATEDIFF и DATEADD, чтобы перейти на 30.09.2011 без изменения времени.

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