41 Stimmen

Nur die Zeit aus meinem Datetime-Feld in Sql aktualisieren

Ich habe ein Datum 2013-12-14 05:00:00.000 in meiner Tabelle.

Jetzt möchte ich nur die Uhrzeit dieses Datums aktualisieren. Z.B. auf 2013-12-14 04:00:00.000

Gibt es irgendeine Abfrage zu aktualisieren nur Zeit von datetime Feld?

59voto

Yuriy Rozhovetskiy Punkte 21846
UPDATE MyTable 
SET MyDate = DATEADD(HOUR, 4, CAST(CAST(MyDate AS DATE) AS DATETIME)) 

Oder dies

UPDATE MyTable 
SET MyDate = DATEADD(HOUR, 4, CAST(FLOOR(CAST(MyDate AS FLOAT)) AS DATETIME))

12voto

Sumanth Punkte 121

Benutzen Sie die untenstehende Option, um die Zeit nur für datetime Spalte -

select  CONVERT(varchar(10),datecolumn, 120) + ' 12:34:56', 
        CONVERT(varchar(10),datecolumn, 120) + ' 00:00:00', 
        RSLV_LTR_INITIAL_DUE_DT, *
from twhere able1

5voto

DECLARE @Time as TIME;
DECLARE @Date as DATETIME;

SELECT @Time = CONVERT(TIME, '2016-01-01 09:30:00.000');
SELECT @Date = CONVERT(date, GETDATE()); --2017-03-10 16:37:34.403

SELECT DATEADD(MINUTE, DATEPART(MINUTE, @Time), DATEADD(HH, DATEPART(HOUR, @Time), @Date))

OUTPUT: 2017-03-10 09:30:00.000

3voto

Samina Punkte 156
UPDATE TABLE_NAME SET DATETIME_FIELD = CAST(CAST(CONVERT(DATE, DATETIME_FIELD,101) AS VARCHAR) + ' 2' + ':' +  '22' AS DATETIME) WHERE (OUR_CONDTTION)

3voto

Nabster Punkte 1157

Wenn Sie nur einen bestimmten Teil der Zeitangabe aktualisieren möchten, können Sie SMALLDATETIMEFROMPARTS mögen:

UPDATE MyTable 
SET MyDate = SMALLDATETIMEFROMPARTS(YEAR(MyDate), MONTH(MyDate), DAY(MyDate), <HoursValue>, <MinutesValue>) 

In anderen Fällen kann es erforderlich sein, Teile der Datetime in eine andere zu kopieren oder nur bestimmte Teile der Datetime zu aktualisieren:

UPDATE MyTable 
SET MyDate = SMALLDATETIMEFROMPARTS(YEAR(MyDate), MONTH(MyDate), DAY(MyDate), DATEPART(hour, MyDate), DATEPART(minute, MyDate)) 

Siehe SQL Server Datum/Zeit-bezogene API-Referenzen für weitere derartige Funktionen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X