[分享] mssql 里怎么查询出一段时间内的内容

[复制链接]

该用户从未签到

108

主题

209

回帖

6045

积分

Intohard Team

Rank: 7Rank: 7Rank: 7

积分
6045
发表于 2007-7-5 10:09:39 | 显示全部楼层 |阅读模式
我想查询数据库里最近一个月的数据,但不知道sql查询语句该怎么写?
  1. declare @GetCurrentDate datetime
  2. set @GetCurrentDate = getdate()
  3. select *
  4. from 表
  5. where datediff(dd,@GetCurrentDate,表中的日期字段) <= 30
复制代码
说明:“表中的日期字段”也须是datetime类型。
---------------------------------------------------------------------------------------------------------
  1. CREATE PROC 存储过程名
  2. (
  3.   @startDate NUMERIC(8,0),---开始时间
  4.   @endDate NUMERIC(8,0)       --结束时间
  5. )
  6. AS
  7. DECLARE @SQL VARCHAR(5000)
  8. DECLARE @SubWhere VARCHAR(2000)
  9. SET @SQL=&#39;&#39;
  10. SET @SubWhere=&#39;&#39;
  11. IF @startDate<>0 AND @startDate IS NOT NULL
  12. SET @SubWhere=@SubWhere+&#39;AND n_date>=&#39;+CONVERT(VARCHAR(15),@startDate)
  13. IF @endDate<>0 AND @endDate IS NOT NULL
  14. SET @SubWhere=@SubWhere+&#39;AND n_date<=&#39;+CONVERT(VARCHAR(15),@endDate)
  15. SET @SQL=&#39;SELECT *
  16.         FROM
  17. WHERE 1=1 &#39;+@SubWhere
  18. EXEC(@SQL)
  19. GO
复制代码

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

请问这个存储过程应该怎么调用呢,结果输出是什么?
  1. SELECT *
  2. FROM
  3. WHERE 1=1 &#39;+@SubWhere
复制代码

这个就是结果
  • TA的每日心情

    2014-11-10 10:16
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    3

    主题

    28

    回帖

    20

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    20
    发表于 2014-11-7 16:14:25 | 显示全部楼层
    好好学习,天天向上
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表