读书人

mssql 里如何查询出一段时间内的内容

发布时间: 2012-01-15 22:57:49 作者: rapoo

mssql 里怎么查询出一段时间内的内容
我想查询数据库里最近一个月的数据,但不知道sql查询语句该怎么写
那个打下指点一下小弟!!

[解决办法]

--这里说的一个月,是按天?

select * from 表名
where datediff(d,日期字段名,getdate()) <30

[解决办法]
declare @GetCurrentDate datetime
set @GetCurrentDate = getdate()
select *
from 表
where datediff(dd,@GetCurrentDate,表中的日期字段) > = 30
说明:“表中的日期字段”也须是datetime类型。
[解决办法]
不好意思,是
“ <= 30”

更正:
declare @GetCurrentDate datetime
set @GetCurrentDate = getdate()
select *
from 表
where datediff(dd,@GetCurrentDate,表中的日期字段) <= 30
说明:“表中的日期字段”也须是datetime类型。
[解决办法]
如是上一个月的数据就用:
select * from 表名
where 日期字段名 between dateadd(dd,1-day(dateadd(dd,-day(getdate()),getdate())),dateadd(dd,-day(getdate()),getdate())) and dateadd(dd,-day(getdate()),getdate())
[解决办法]
CREATE PROC 存储过程名
(

@startDate NUMERIC(8,0),---开始时间
@endDate NUMERIC(8,0) --结束时间
)
AS
DECLARE @SQL VARCHAR(5000)
DECLARE @SubWhere VARCHAR(2000)


SET @SQL= ' '
SET @SubWhere= ' '

IF @startDate <> 0 AND @startDate IS NOT NULL
SET @SubWhere=@SubWhere+ 'AND n_date> = '+CONVERT(VARCHAR(15),@startDate)

IF @endDate <> 0 AND @endDate IS NOT NULL
SET @SubWhere=@SubWhere+ 'AND n_date <= '+CONVERT(VARCHAR(15),@endDate)


SET @SQL= 'SELECT *
FROM

WHERE 1=1 '+@SubWhere


EXEC(@SQL)


GO
这个比较灵活,可以查任何时间段的

读书人网 >SQL Server

热点推荐