[SQL] 日期分表查询 →→→→→进入此内容的聊天室

来自 , 2020-03-10, 写在 SQL, 查看 124 次.
URL http://www.code666.cn/view/21e60123
  1. CREATE PROCEDURE SEARCH
  2. @date1 datetime, --起始时间
  3. @date2 datetime --终止时间
  4. AS
  5. DECLARE @date1New datetime,
  6. @rq VARCHAR(6),
  7. @i INT , --记录循环次数
  8. @s VARCHAR(5000) --根据表多少 可以扩大它
  9. SET @rq=CONVERT(VARCHAR,@date1,12) --把时间格式化 比如2008-06-20 变成了080620
  10.  
  11.  
  12. SET @s='select * from sensor'+@rq --初始化 @s='select * from sensor080620' 这样第一个表就有了
  13.  
  14. SET @i=datediff(d,@date1,@date2) --日期相减
  15.  
  16. while @i>0
  17. BEGIN
  18. --如果是非常重要的系统可以在这里加上该物理表是否存在的语句
  19. --if exists(select * from dbo.sysobjects where
  20. --id = object_id(N'c') and OBJECTPROPERTY(id,N'IsUserTable')=1)
  21. --begin
  22. --SELECT '存在 '
  23. --end
  24.  
  25. SET @date1New= dateadd(DAY,@i,@date1)
  26. SET @rq=CONVERT(VARCHAR,@date1New,12)
  27. --如果是按月进行查询 就修改上面
  28. SET @s= @s+' union all select * from sensor'+@rq
  29. SET @i=@i-1 --累加
  30. END
  31.  
  32. SELECT @s
  33. --exec(@S)
  34. GO
  35.  
  36.  
  37. EXEC SEARCH '2008-06-20 00:11:11.000','2008-07-25 00:11:11.000'
  38. DROP PROCEDURE SEARCH
  39.  
  40. //SQL/1214

回复 "日期分表查询"

这儿你可以回复上面这条便签

captcha