如何使用SQL Server更新日期而不更改其时间?

the*_*van 11 sql sql-server datetime sql-server-2005

我在Mytable中有一个名为StockDate的列,其DataType是DateTime.

所以我的表包含如下记录

    SID                StockDate
   -----              ------------
     1                 2011-10-02 09:44:41.170
     2                 2011-10-02 09:48:23.234
Run Code Online (Sandbox Code Playgroud)

在这里,我想仅将StockDate的日期更新为"2011-09-30".但时间应该是一样的.这该怎么做?我需要你的所有建议.

gbn*_*gbn 13

整天解决不同的问题并减去......

UPDATE
   MyTable
SET
   StockDate = DATEADD(day, DATEDIFF(day, StockDate, '20110930'), StockDate)
WHERE
   ...
Run Code Online (Sandbox Code Playgroud)

请注意yyyymmdd用于SQL Server.