SQL前一天、前一个月、前一年写法

-- 前一天
SELECT   *   FROM   [ tb ]  
WHERE   [ 日期字段 ]   BETWEEN  
DATEADD ( DAY , - 1 , CONVERT ( VARCHAR ( 8 ), GETDATE (), 112 ))  AND   DATEADD (MILLISECOND, - 2 , CONVERT ( VARCHAR ( 8 ), GETDATE (), 112 ))
-- 上一个月
SELECT   *   FROM   [ tb ]   WHERE   [ 日期字段 ]   BETWEEN  
DATEADD ( MONTH , - 1 , DATEADD ( DAY , 1 - DAY ( GETDATE ()), CONVERT ( VARCHAR ( 8 ), GETDATE (), 112 )))
AND
DATEADD (MILLISECOND, - 2 , DATEADD ( DAY , 1 - DAY ( GETDATE ()), CONVERT ( VARCHAR ( 8 ), GETDATE (), 112 )))
-- 上一年
SELECT   *   FROM   [ tb ]   WHERE   [ 日期字段 ]
BETWEEN   DATEADD ( YEAR , - 1 , DATEADD ( DAY , 1 - DATEPART (dayofyear, GETDATE ()), CONVERT ( VARCHAR ( 8 ), GETDATE (), 112 )))
AND   DATEADD (MILLISECOND, - 2 , DATEADD ( DAY , 1 - DATEPART (dayofyear, GETDATE ()), CONVERT ( VARCHAR ( 8 ), GETDATE (), 112 )))
 

你可能感兴趣的:(sql)