我有下表格式。
Order_Table
Ord_ID Ord_Date Del_Date Del_Qty Del_Time Hits Miss
10001 9/13/2013 12:30 9/13/2013 13:10 2 40 2 0
10002 9/13/2013 13:09 9/13/2013 15:10 1 119 0 1
10003 9/13/2013 16:20 9/13/2013 16:50 1 30 1 0
我想根据(Ord_Date - Del_Date)更新表格 Del_Time ,点击次数应填充 Del_Qty <的值/ strong>字段,如果 Del_Time 小于 60 ,小姐应填充来自 Del_Qty 的值,如果< strong> Del_Time 大于60。
这可能吗?我使用的是MS Sql Server
答案 0 :(得分:1)
两个datetime
值之间的差异为datetime
。说“小于60”是没有意义的。我想你想要分钟(这是猜测)。如果是这样,您想使用datediff()
功能。
否则,这是一种非常简单的update
语法,带有case
。 case
用于避免在不满足条件时更新值:
update order_table
set del_time = datediff(minute, del_date, ord_date),
hits = (case when datediff(minute, del_date, ord_date) < 60
then del_qty else hits
end),
miss = (case when datediff(minute, del_date, ord_date) > 60
then del_qty else miss
end)
答案 1 :(得分:0)
或(编辑)在三个陈述中执行此操作:
UPDATE tbl SET del_time=datediff(minute,ord_date,del_date);
UPDATE tbl SET HITS=del_qty WHERE del_time<60;
UPDATE tbl SET MISS=del_qty WHERE del_time>60;