求学:关于SQL日期查询昨天的数据
本帖最后由 apple_t 于 2013-11-17 22:45:24 编辑 是这样,如果我程序传过来的数据是一个字符型的“2013-11-17”,
那要查询该日期的昨日数据,但里面有一个字段addtime为datetime类型应该如何写SQL? 注意日期只是假设是“2013-11-17”出有可能是‘2013-11-1’那么它昨天数据是‘2013-10-1’的数据了。
请SQL语句,麻烦大哥大姐们
[解决办法]
declare @x varchar(15)
select @x='2013-11-17'
select * from [表名]
where addtime between dateadd(d,-1,@x) and dateadd(s,-1,@x)
declare @x varchar(15)
select @x='2013-11-17'
select dateadd(d,-1,@x) 'begin',dateadd(s,-1,@x) 'end'
/*
begin end
----------------------- -----------------------
2013-11-16 00:00:00.000 2013-11-16 23:59:59.000
(1 row(s) affected)
*/
declare @x varchar(15)
select @x='2013-11-1'
select dateadd(d,-1,@x) 'begin',dateadd(s,-1,@x) 'end'
/*
begin end
----------------------- -----------------------
2013-10-31 00:00:00.000 2013-10-31 23:59:59.000
(1 row(s) affected)
*/
SELECT * FROM TableName
WHERE addtime>=DATEADD(DAY,-1,'2013-11-17')
and addtime <'2013-11-17'