使用 - 选择datepart(dw,getdate())将值从一列移动到另一列

时间:2015-09-08 18:07:46

标签: sql-server-2008

这是我之前提出的一个问题的后续/修订,因为我认为我过分思考。

我有一个表格设置如下:

ItemNumber
StartTime
EndTime
Price
MonStartTime
MonEndTime
MonPrice
TueStartTime
TueEndTime
TuePrice

......以及本周余下的时间。

表格看起来像这样

ItemNumber StartTime EndTime Price MonStartTime MonEndTime MonPrice .....
1234       1600      1800    2.99  1300         1500       1.89
2345       0900      1100    3.99  1400         2200       2.50

我需要一个脚本,它使用datepart函数来查找星期几,并将那些天的开始和结束时间以及价格移动到StartTime EndTime Price列。

在上面的示例中,如果今天是星期一,则脚本将为项目1234复制/更新,将MonStartTime为1300到StartTime,将MonEndTime为1500到EndTime,将MonPrice为1.89到Price字段。

感谢您的反馈!

1 个答案:

答案 0 :(得分:0)

This works!

CREATE procedure p_Calculation_PLUSchedule_Wed

@Store int
, @vYYYYMMDD varchar(8)
, @iCard smallint
AS

/* PLU Schedule Wednesday */

SET NOCOUNT ON

DECLARE @Client smallint
SET @Client = 1

IF datepart(dw,getdate()) = '4'

BEGIN

Update DatabaseName.dbo.plusschedule
Set price = wedprice, StartTime = WedStartTime, EndTime = WedEndTime
From    DatabaseName.dbo.plusschedule psched
Where   psched.Wednesday = '1'
And     EXISTS (Select *
From DatabaseName.dbo.PlusSchedule D
Where D.Wednesday = '1')

End
GO