首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-01-15 
mssql 里怎么查询出一段时间内的内容我想查询数据库里最近一个月的数据,但不知道sql查询语句该怎么写那个

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
这个比较灵活,可以查任何时间段的

热点排行