关于access数据库按日期查询的问题

ricklee007 2009-09-12 09:58:28
小弟是个ASP新手,最近遇到个棘手的问题,利用ASP+ACCESS数据库做了个网站程序,想要实现按月份查询出数据,已经创建了一个时间字段,里面存的都是1999-9-1这样的格式,提交按月查询时的表单时是用的字符串,但是不会写数据库查询语句,怎么写都是提示语法错误,不知哪位大侠能指教一下,具体如下:
从前面页面做了个年月的选择下拉框,递交到查询页面并赋值,shijian为我建的日期类型字段
nian = trim(request("select"))
yue = trim(request("select2"))
。。。。。
select * from ziliao where kehupingji like '%A%' or kehupingji like '%B%' and shijian 。。。。。,conn,1,1
该怎么写呢????
...全文
581 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
恩,chinmo这样也是个写法,同样感谢,统统给分,嘿嘿,感谢两位大侠
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
恩,最终结果
nian = trim(request("select")): if nian="" then nian=year(date)
yue = trim(request("select2")): if yue="" then yue=month(date)
shijian=nian&"-"&yue
。。。。
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from ziliao where (kehupingji like '%A%' or kehupingji like '%B%') and (shijian LIKE '%"&shijian&"%')",conn,1,1
  • 打赏
  • 举报
回复
因为

nian = trim(request("select"))
yue = trim(request("select2"))

shijian=nian&"-"&yue

select * from ziliao where kehupingji like '%A%' or kehupingji like '%B%' and datediff('d',shijian,'"&shijian&"')=0
这样的,按天是永远不会等于0的
  • 打赏
  • 举报
回复
之前一直按天所以你没有数据,要按月才对

哈哈
  • 打赏
  • 举报
回复
哈哈

忘记了,你是按月的,不是按天的
所以把d改为m就可以了
select * from ziliao where (kehupingji like '%A%' or kehupingji like '%B%') and  datediff('m',shijian,'"&shijian&"')=0 


ricklee007 2009-09-12
  • 打赏
  • 举报
回复
晕啊,toury,按你22楼改的有报错了,到底哪个正确啊,哈哈,我看还是不改为好
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
感谢toury,21楼代码正解!多谢多谢,送分咯
toury 2009-09-12
  • 打赏
  • 举报
回复
汗~~搞错了,修改一下
yue = trim(request("select2")): if yue="" then yue=year(month)
-------->换成
yue = trim(request("select2")): if yue="" then yue=month(date)

toury 2009-09-12
  • 打赏
  • 举报
回复
这样试一下

<%
nian = trim(request("select")): if nian="" then nian=year(date)
yue = trim(request("select2")): if yue="" then yue=year(month)
shijian=nian&"-"&yue

set rs=server.CreateObject("adodb.recordset")
sql="select * from ziliao where kehupingji<'C' and shijian LIKE '%"&shijian&"%'"
response.write sql&"<br>"
rs.open sql,conn,1,1
%>
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
数据库里shijian这个时间/日期类型字段是偶创建的,真实字段名应该就是“shijian”的吧
toury 2009-09-12
  • 打赏
  • 举报
回复
18楼作废,我没看清。 汗个~
toury 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 chinmo 的回复:]
输出SQL语句吧
[/Quote]
我估计楼主是简单的拷贝了你的代码,没有把你的datediff('d',shijian,'"&shijian&"')中的红字改为他数据库的真实字段名,呵呵
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
感谢chinmo的帮助,
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from ziliao where datediff('d',shijian,'"&shijian&"')=0",conn,1,1 现在写成这样了,什么也查不出来了,我觉得是不是'd',shijian,'"&shijian&"'这里面。。。。
  • 打赏
  • 举报
回复
输出SQL语句吧
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
去掉了,查询不到任何数据
  • 打赏
  • 举报
回复
(kehupingji like '%A%' or kehupingji like '%B%') and
你把这个去掉,单留时间那个测试看数据没
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
另外我把按日期去掉后成功可以查出B级以上的客户名单,只是是所有的。。。不是具体到某月的
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
偶明白and和or,嘿嘿,相信我,我解释下,我是想实现某年某月,这一个月中客户评级在B以上的客户数据查询出来
  • 打赏
  • 举报
回复
你明白 and 和or吗?
ricklee007 2009-09-12
  • 打赏
  • 举报
回复
chinmo,哦,刚才加了where后面的括号试了一下,发现输入任何日期都是查询不到任何一条数据了。晕啊
加载更多回复(9)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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