VC中SQL如何遍历日期间的表?

uestcTWI 2013-03-27 10:57:00
比如我的表示这样建立的
G_20130322
G_20130323
G_20130324
....
G_20130411
在界面中输入日期区间要能遍历每张表查询内容
这样跨了月份的应该如何遍历查询呢?
...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
uestcTWI 2013-03-27
  • 打赏
  • 举报
回复
引用 3 楼 annatrov 的回复:
用DATEADD函数加1天的规律拼成表名遍历日期区间的表。
但是如果跨月份的话怎么判断?
uestcTWI 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 chuanzhang5687 的回复:
SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112))and convert(int,convert(nvarchar(10),@date2,112))
这段代码是查询什么呢?
七不语v 2013-03-27
  • 打赏
  • 举报
回复
用DATEADD函数加1天的规律拼成表名遍历日期区间的表。
快溜 2013-03-27
  • 打赏
  • 举报
回复
查询结果union起来
chuanzhang5687 2013-03-27
  • 打赏
  • 举报
回复
select * from tb
where convert(int,right(col,8)) 
between 
convert(int,convert(nvarchar(10),@date1,112))
and 
convert(int,convert(nvarchar(10),@date2,112))
chuanzhang5687 2013-03-27
  • 打赏
  • 举报
回复
引用 10 楼 uestcTWI 的回复:
[quote=引用 9 楼 chuanzhang5687 的回复:] [quote=引用 8 楼 uestcTWI 的回复:] 引用 7 楼 chuanzhang5687 的回复:引用 4 楼 uestcTWI 的回复:引用 1 楼 chuanzhang5687 的回复:SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112)……
把你的表名贴出来,还有存放 G_20130323数据的列名贴出来 日期是列名[/quote] 没看懂诶 我是需要建一个表,将每个日期放进去,然后遍历吗[/quote]我擦 你不是有表结构吗
uestcTWI 2013-03-27
  • 打赏
  • 举报
回复
引用 9 楼 chuanzhang5687 的回复:
[quote=引用 8 楼 uestcTWI 的回复:] 引用 7 楼 chuanzhang5687 的回复:引用 4 楼 uestcTWI 的回复:引用 1 楼 chuanzhang5687 的回复:SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112)……
把你的表名贴出来,还有存放 G_20130323数据的列名贴出来 日期是列名[/quote] 没看懂诶 我是需要建一个表,将每个日期放进去,然后遍历吗
chuanzhang5687 2013-03-27
  • 打赏
  • 举报
回复
引用 8 楼 uestcTWI 的回复:
引用 7 楼 chuanzhang5687 的回复:引用 4 楼 uestcTWI 的回复:引用 1 楼 chuanzhang5687 的回复:SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112)……
把你的表名贴出来,还有存放 G_20130323数据的列名贴出来 日期是列名
uestcTWI 2013-03-27
  • 打赏
  • 举报
回复
引用 7 楼 chuanzhang5687 的回复:
引用 4 楼 uestcTWI 的回复:引用 1 楼 chuanzhang5687 的回复:SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112))and convert(int,convert(n……
引用 7 楼 chuanzhang5687 的回复:
引用 4 楼 uestcTWI 的回复:引用 1 楼 chuanzhang5687 的回复:SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112))and convert(int,convert(n……
我是想遍历 2013-01-01 到 2013-03-27日期之间的表,也就是说日期是表的名称,而不是表中数据的名称。
chuanzhang5687 2013-03-27
  • 打赏
  • 举报
回复
引用 4 楼 uestcTWI 的回复:
引用 1 楼 chuanzhang5687 的回复:SQL code?123456select * from tbwhere convert(int,right(col,8)) between convert(int,convert(nvarchar(10),@date1,112))and convert(int,convert(nvarchar(10),@date2,1……
你是要遍历两个日期之间的数据对吧? 比如说 2013-01-01 到 2013-03-27 这个日期之间的数据 先把你的 表中的数据列 G_20130323,截取字符串,然后转换为int类型 convert(int,right(col,8)) 这一段代码是把这一列变成了20130323 col的意思就是列名, 然后 between convert(int,convert(nvarchar(10),@date1,112)) 传入2013-01-01 and convert(int,convert(nvarchar(10),@date2,112)) 传入 2013-03-27 在这一区间内 你测试一下数据 把col 换成你的列名
七不语v 2013-03-27
  • 打赏
  • 举报
回复
引用 5 楼 uestcTWI 的回复:
引用 3 楼 annatrov 的回复: 用DATEADD函数加1天的规律拼成表名遍历日期区间的表。 但是如果跨月份的话怎么判断?
如果到31号,加1天,日期就是下月1号。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧