我有日期字段,并且错误地更新了表中的记录,而没有设置时间。
我想首先找到此类记录,然后使用同一表中的时间更新它们。
在此图像中,2018-07-20
的记录没有时间,因此我想将In_Time
的时间更新为In_Date
,因此输出将为2018-07-20 06:21:00
。
我想搜索所有此类记录并更新相同的时间。
我可以通过查询执行任何操作吗?
答案 0 :(得分:3)
您应该能够只添加时间和日期组件。
UPDATE yourTable
SET
In_Date = In_Date + CAST(In_Hour AS datetime),
Out_Date = Out_Date + CAST(Out_Hour AS datetime);
上面的方法应该在日期列已经为datetime
的情况下工作。然后,将小时列强制转换为datetime
只会产生一个小时部分。
但是,我建议不要分开存储时间和日期,除非您有非常具体的理由。相反,我认为仅记录进/出时间戳就足够了。
答案 1 :(得分:3)
考虑到您将分钟数存储为In_Time
和Out_Time
列中的整数。
UPDATE [TableName]
SET
In_Date=DATEADD(MINUTE,In_Time,In_Date)
where CAST(In_Date as time(0)) ='00:00:00'
UPDATE [TableName]
SET
Out_Date=DATEADD(MINUTE,Out_Time,Out_Date)
where CAST(Out_Date as time(0)) ='00:00:00'