SQL 语句中周六到周日的表达

在做一个网吧收费系统,需要更新网吧收费数据:把周六到周日的收费改到平常的一半,每小时计算。如下图这样写提醒数据库类型转换失败,求教图片说明

3个回答

 SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7)  IN (0, 1)

楼主你确定update语句这么写?
不应该是
update record
set fee = fee/2
where begintime between 'saturday' and 'sunday'

Raelovejava
java201656 回复liang061145: 我不知道 … 所以才问嘛![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/1.gif)
大约 4 年之前 回复
 DECLARE @t TABLE (
    id INT IDENTITY(1,1) PRIMARY KEY,
    Fee INT,
    BeginTime DATETIME
)
INSERT INTO @t (Fee,BeginTime) VALUES(2,'2016-07-22')
INSERT INTO @t (Fee,BeginTime) VALUES(2,'2016-07-23')
INSERT INTO @t (Fee,BeginTime) VALUES(2,'2016-07-24')

SELECT *,DATEPART(dw,BeginTime) AS dw FROM @t
/*
id  Fee BeginTime               dw
1   2   2016-07-22 00:00:00.000 6
2   2   2016-07-23 00:00:00.000 7
3   2   2016-07-24 00:00:00.000 1 
*/
UPDATE @t SET Fee=Fee/2 WHERE DATEPART(dw,BeginTime) IN (7,1)

SELECT * FROM @t 
/*
id  Fee BeginTime
1   2   2016-07-22 00:00:00.000
2   1   2016-07-23 00:00:00.000
3   1   2016-07-24 00:00:00.000
*/

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问