| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1064 人关注过本帖
标题:时间查询问题!
取消只看楼主 加入收藏
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
 问题点数:0 回复次数:9 
时间查询问题!
看看下面的代码:


'取得当前月
mymonth=month(now())
if request("mymonth")<>"" then mymonth=cint(request("mymonth"))
'取得当前年
myyear=year(now())
if request("myyear")<>"" then myyear=cint(request("myyear"))


<select name="myyear" size=1>
<%
for i=2001 to 2010
%>
<option value=<%=i%><%=selected(i,myyear)%> ><%=i%>年</option>
<%
next
%>
</select>
<select name="mymonth" size=1>
<%
for i=1 to 12
%>
<option value=<%=i%><%=selected(i,mymonth)%>><%=i%>月</option>
<%
next
%>
</select>
<input type="hidden" name="lookfor" value="yes">
<input type="submit" value="查询" style="border:1px solid">
下面的是我的查询语句:
if request("lookfor")="yes" then
sql="select * from newnotice where noticedate between " & "#" & mydate & "# and #" & mydate1 & "# order by id desc"
rs.open sql,conn,1

在查询时提示,“#”边有语法错误!

[此贴子已经被作者于2006-6-20 12:02:27编辑过]

搜索更多相关主题的帖子: 时间 查询 
2006-06-20 12:01
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 
先谢谢两位

二楼的写法是肯定 不行的。
试了yms123的:提示出错

Microsoft OLE DB Provider for SQL Server 错误 '80040e07'

将 varchar 值 '2006-5' 转换为数据类型为 int 的列时发生语法错误。

[此贴子已经被作者于2006-6-20 13:48:27编辑过]


2006-06-20 13:45
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 

因为我的时间是选择的。
yms123改写成这样了:
sql="select * from newnotice where noticedate between YEAR(noticedate)='"&year(myyear)&"'and month(noticedate)='"&month(mymonth)&"' order by id desc"

但还是提示出错:

Microsoft OLE DB Provider for SQL Server 错误 '80040e14'

'=' 附近有语法错误。

/noticelook.asp,行 100


2006-06-20 14:04
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 

sql="select * from newnotice where noticedate between '"&myyear&"' and '"&mymonth&"' order by id desc"

从字符串转换为 datetime 时发生语法错误:
我想主要是:怎么样才能把“字符串转换为 datetime ”

2006-06-20 14:12
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 

还是提示:
'=' 附近有语法错误。

/noticelook.asp,行 100


2006-06-20 14:20
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 
hangxj
还有什么更好的办法吗?

2006-06-20 14:22
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 
noticelook.asp,行 100 的代码就是:
sql="select * from newnotice where noticedate between '"&myyear&"' and '"&mymonth&"' order by id desc"


2006-06-20 14:23
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 
sql="select * from newnotice where YEAR(noticedate)='"&year(myyear)&"'and month(noticedate)='"&month(mymonth)&"' order by id desc"
好像没有查到值,就退出循环了。

对了,表newnotice 中的时间字段就是noticedate 为datetime型

然后我改写成:
sql="select * from newnotice where noticedate='"&year(myyear)&"'and noticedate='"&month(mymonth)&"' order by id desc"

就又出现:
从字符串转换为 datetime 时发生语法错误


2006-06-20 14:37
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 
以下是引用hangxj在2006-6-20 14:36:56的发言:
刚才试了一下
sql="select * from newnotice where YEAR(noticedate)='"&myyear&"'and month(noticedate)='"&mymonth&"' order by id desc"

这样可以,你试下看看吧

哈哈!
谢谢大大!
可以了,就是这样!!


2006-06-20 14:40
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
收藏
得分:0 
谢谢regedit,用hangxj的方法成功了,你的方法,我也试试!

2006-06-20 14:43
快速回复:时间查询问题!
数据加载中...
 
   



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

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