我正在设计一个网站,以接受我网站的广告。我的网站将获得有效广告列表(经过验证的广告并且还有信用额度),并会显示这些广告。我的广告表中包含验证广告的字段:
我想举例说明4个广告 - 使用类似于此的查询:
SELECT TOP 4 ImageId,
Url
FROM ads
WHERE verified = 1 AND ..........
ORDER BY LastShowed ASC
问题在于,如果我可以简单地使用所有广告的TotalDaysToShow相同:
declare @d= dateadd(day, @TotalDaysToShow, starttime)
然后使用它:
SELECT TOP 4 ImageId,
Url
FROM ads
WHERE verified = 1
AND @d > Getdate()
ORDER BY LastShowed ASC
是否有可能为每个人计算出来?
SELECT TOP 4 ImageId,
Url
FROM ads
WHERE verified = 1
AND Dateadd(day, TotalDaysToShow, startdate) > Getdate()
ORDER BY LastShowed ASC
提前致谢
答案 0 :(得分:1)
是的,但我相信你会发现这个SQL子句更有效率
AND startdate BETWEEN Dateadd(day, -TotalDaysToShow, getdate()) AND getdate()
因为它将表字段与两个常量进行比较。