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?

0voto

Amir Alizade Punkte 1
DECLARE @d datetime;
SELECT @d = DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0);

DECLARE @t time(7);
SET @t = CAST('10:10:10' AS time);

SELECT CONVERT(datetime, CONVERT(varchar(10), CONVERT(date, @d, 101)) + ' ' + CONVERT(varchar(8), @t));

0voto

Abolfazl Punkte 1

Dieses Skript verwenden:

declare @curDate datetime=getdate() --or any other datetime 
declare @time time='22:31'
declare @hour int ,@min int
set @hour=datepart(hh,@time)
set @min=datepart(mm,@time)
select @curDate=Dateadd(HOUR,@hour,convert(datetime,convert(Date,@curDate)))
select @curDate=Dateadd(MINUTE,@min,@curDate)
Select @curDate

0voto

Sirar Salih Punkte 2465

Verwenden Sie dies, um den gesamten Zeitteil der Zeichenkette zu ändern:

UPDATE MyTable SET MyColumn = DATEADD(DAY, DATEDIFF(DAY, 0, MyColumn), '04:00:00')

-2voto

Jahangir Alam Punkte 23

Die vorherige Abfrage aktualisiert nur den Stundenanteil, aber diese Abfrage aktualisiert alle Anteile der Zeit, d.h. Stunde, Minuten, Sekunden:

UPDATE TABLE_NAME
SET DATETIME_FIELD = CONCAT(CAST(DATETIME_FIELD AS Date), ' ', CAST('2016-02-01 09:20:00.0000000' AS TIME))

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