UPDATE tblAttendance2
SET
DateTimeIn = CONVERT(varchar(10), DateTimeIn, 120) + @TimeInChange,
DateTimeOut = CONVERT(varchar(10), DateTimeIn, 120) + @TimeOutChange
WHERE
AttendanceDeductionsID = @AttendanceDeductionsID
Ich bekomme diesen Fehler
Meldung 402, Ebene 16, Status 1, Prozedur SP_UpdateDTR_TimeChange, Zeile 8
Die Datentypen varchar und time sind im add-Operator nicht kompatibel.
Antworten:
0 für die Antwort № 1Sie konvertieren DateTimeIn in ein varchar () und fügen dann @TimeInChange hinzu (wahrscheinlich ein Time-Typ). Das geht nicht.
Wenn DateTimeIn den Typ DateTime und @TimeInChange den Typ Time hat, funktioniert Folgendes:
UPDATE tblAttendance2
SET DateTimeIn = DateTimeIn + cast(@TimeInChange as DateTime),
DateTimeOut =DateTimeIn + cast(@TimeOutChange as DateTime)
WHERE AttendanceDeductionsID = @AttendanceDeductionsID
0 für die Antwort № 2
Angenommen @timeInChange
ist vom Datentyp time
Versuche dies
UPDATE tblAttendance2
SET
DateTimeIn = cast(cast( DateTimeIn as date) as datetime) + cast (@TimeInChange as datetime),
DateTimeOut = cast(cast( DateTimeIn as date) as datetime) + cast (@TimeOutChange as datetime)
WHERE
AttendanceDeductionsID = @AttendanceDeductionsID
0 für die Antwort № 3
Bitte versuche :
Sql Server
wenn du nur die hh + mm brauchst, dann kannst du
--DECLARE @datetimein datetime
--SELECT @datetime = GETDATE()
UPDATE tblAttendance2
SET DateTimeIn =
CAST(DATEPART(hour, @datetimein) as varchar(2)) +
":" + CAST(DATEPART(minute, @datetimein)as varchar(2)) +@TimeInChange,
Date time out =use same procedure as above + @timeoutchange
where <some condition condition>