在SQL中更新DateTime的Time Time部分

时间:2013-11-16 14:02:48

标签: sql sql-server-2008 datetime

我想在SQL中更新datetime字段的时间部分。 我有一个出勤表,用户可以根据他/她选择的出勤日期更新时间。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

这里你去..myDate是表格中的字段名称。我使用变量来节省时间值。如果您需要任何澄清,请告诉我。

declare @TestTime datetime
declare @hour int=10
declare @min int=10
declare @sec int=12
select @TestTime = cast(convert(varchar(100),myDate,101)+' 00:00:00' as datetime) from      TestTable
select dateadd(ss,@sec,dateadd(m,@min,dateadd(hh,@hour,@TestTime)))

答案 1 :(得分:0)

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

或者这个

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

或者

UPDATE tblAttendance2 
SET DateTimeIn = DateTimeIn + cast(@TimeInChange as DateTime),
DateTimeOut =DateTimeIn + cast(@TimeOutChange as DateTime)
WHERE AttendanceDeductionsID = @AttendanceDeductionsID