刚刚想统计最近一周内的推荐图书,一开始用了一种方法,代码较长,如下:
SELECT Product.*
FROM Product INNER JOIN
CommendProduct ON Product.ProductID = CommendProduct.ProductID
WHERE (DATEPART(MM, CommendProduct.CommendTime) = DATEPART(MM, GETDATE
()))
AND (DATEPART(WK, CommendProduct.CommendTime) = DATEPART(WK,
GETDATE()))
AND (DATEPART(YY, CommendProduct.CommendTime) = DATEPART(YY,
GETDATE()))
这个方法用的是DATEPART函数,取出推荐时间中的年月日,再去和当前时间的年月日匹配,从而获得最近一周内的推荐图书。但是太长了,我不喜欢,所以想了另外一种解法:
SELECT Product.*
FROM Product INNER JOIN
CommendProduct ON Product.ProductID = CommendProduct.ProductID
WHERE (DATEDIFF(d, CommendProduct.CommendTime, GETDATE()) <= 7)
DATEDIFF(interval, date1, date2)是检测两时间的指定单位的时间间隔,就是date2-date1的差(顺序不能颠倒!)。 这里需要注意的是,DATEDIFF得出的不是绝对值!若date1 比 date2 来得晚,则得出来是负数。反之为正数。
SQL----datediff用法
最新推荐文章于 2023-10-25 11:40:42 发布