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