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