标题:按时间段如何查询sql数据?(已解决,见4楼)
只看楼主
mohan123
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-10
 问题点数:0 回复次数:16 
按时间段如何查询sql数据?(已解决,见4楼)
如何按时间段查询数据?
select * from allrecord between #" & Format(DTPstart.Value, "yyyy-mm-dd") & "#and #" & Format(DTPend.Value, "yyyy-mm-dd") & "#""
上面的语句总是无法通过编译。

[此贴子已经被作者于2007-9-18 16:01:52编辑过]

搜索更多相关主题的帖子: 时间段 sql 数据 Format 
2007-09-18 14:09
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
什么错误?

我的msn: myfend@
2007-09-18 14:14
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 
改成
select * from allrecord where 日期字段 between #" & Format(DTPstart.Value, "yyyy-mm-dd") & "#and #" & Format(DTPend.Value, "yyyy-mm-dd") & "#""
试试

foreach( in ){ }
2007-09-18 14:33
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
這樣即可。。。。。
select * from allrecord where convert(varchar(10),日期字段,120) between convert(varchar(10),'"& DTPstart.Value &"',120) and convert(varchar(10),'"& DTPend.Value &"',120)

2007-09-18 14:49
mohan123
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-10
得分:0 

该语句的环境是;Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cnn.Open "Provider=SQLOLEDB.1;User ID=sa;pwd=123456;Initial Catalog=Northwind;Data Source= LOCALHOST ;"

rs.Open "select * from allrecord between #" & Format(DTPstart.Value, "yyyy-mm-dd") & "#and #" & Format(DTPend.Value, "yyyy-mm-dd") & "#"",cnn, adOpenDynamic, adLockOptimistic, adCmdText
'rs.Open "select * from allrecord ", cnn, adOpenDynamic, adLockOptimistic, adCmdText
With MSFlexGrid2(1)
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Date
.TextMatrix(.Rows - 1, 1) = rs!rwldata
.TextMatrix(.Rows - 1, 2) = rs!bmdata
.TextMatrix(.Rows - 1, 3) = rs!tmdata
rs.MoveNext
Loop
End With
cnn.Close

报错提示是:实时报错:“3079”,连接无法用于此操作。在此上下文中它可能已被关闭或者无效。
但是如果把rs.Open "select * from allrecord between #" & Format(DTPstart.Value, "yyyy-mm-dd") & "#and #" & Format(DTPend.Value, "yyyy-mm-dd") & "#"",cnn, adOpenDynamic, adLockOptimistic, adCmdText
改成rs.Open "select * from allrecord ", cnn, adOpenDynamic, adLockOptimistic, adCmdText
就可以通过,显然不是rs的连接问题,应该是这句话在此上下文中可能无效。
请大家帮忙分析下,看按时间段查询怎么来写?已经按照3楼的方法测试了,还是出现同样的错误。

2007-09-18 14:56
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
4樓已回答

2007-09-18 15:10
mohan123
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-10
得分:0 

开始没看到4楼的回复,就有了5楼回复2楼
,后来用4楼的方法测试了下,发现还是不行。出现的错误提示:
实时错误:‘-2147217900(80040e14)',
在关键字’convert‘附件有语法错误。

2007-09-18 15:18
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 

這樣都 有錯??不會吧。。。

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cnn.Open "Provider=SQLOLEDB.1;User ID=sa;pwd=123456;Initial Catalog=Northwind;Data Source= LOCALHOST ;"

rs.Open "select * from allrecord where convert(varchar(10),日期字段,112) between convert(varchar(10),'"& DTPstart.Value &"',112) and convert(varchar(10),'"& DTPend.Value &"',112)",cnn,adOpenDynamic,adLockOptimistic

With MSFlexGrid2(1)
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Date
.TextMatrix(.Rows - 1, 1) = rs!rwldata
.TextMatrix(.Rows - 1, 2) = rs!bmdata
.TextMatrix(.Rows - 1, 3) = rs!tmdata
rs.MoveNext
Loop
End With
cnn.Close


[此贴子已经被作者于2007-9-18 15:31:30编辑过]


2007-09-18 15:30
mohan123
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-10
得分:0 
还是不行,出现7楼同样的错误,郁闷!!~~
2007-09-18 15:34
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 

我這邊都沒錯。。暈。。。
你自己調試一下,看看你選字段,DTPstart是多少。。


2007-09-18 15:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-170892-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.317519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved