11 12
发新话题
打印

关于sql的问题!

关于sql的问题!

sql=sql&" where endtime like '%"&key&"%'"
同样一句查询语句,endtime都是datetime类型的,在用access作数据库的网站中就可以正常运,在sql server中就不行,总是搜不到本应该搜的到的东西,为什么啊? :?:
人生如梦

TOP

将变量key先替换成英文单词,执行一次看看。
我的MSN Spaces - 有空看看

我的百渡空间 - 有空看看





注意: 1、转贴时请先用论坛搜索进行关键字查找,以免重复发帖。

TOP

不行啊,我又把库换回了acess,一切功能又实现啦,真是奇怪!难道说sql还不如access人性化?
人生如梦

TOP

把完整的代码贴上来,我试试。
我的MSN Spaces - 有空看看

我的百渡空间 - 有空看看





注意: 1、转贴时请先用论坛搜索进行关键字查找,以免重复发帖。

TOP

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include virtual="/share/inc/admin.inc"-->
<!--#include file="conn.asp"-->
<%
key=trim(request.form("key"))
kind=trim(request.form("kind"))
'response.write "kind:"&kind&"key:"&key
set rs=server.CreateObject("adodb.recordset")
sql="select * from client"
if key<>"" then
        select case kind
        case "company"
        sql=sql&" where company like '%"&key&"%'"
        case "endtime"
        sql=sql&" where endtime like '%"&key&"%'"
        case "starttime"
        sql=sql&" where starttime like '%"&key&"%'"
        end select
end if
sql=sql&" order by id desc"
rs.open sql,Objconn,1,2
if rs.eof or rs.bof then
response.Write("暂无客户信息!")
else
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../share/css/job99.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="770" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><form name="form1" method="post" action="index.asp">
        <input name="kind" type="radio" value="company" <%if kind="" or kind="company" then response.write "checked"%>>
        公司名
        <input type="radio" name="kind" value="endtime" <%if kind="endtime" then response.write "checked"%>>
        到期日期
        <input type="radio" name="kind" value="starttime" <%if kind="starttime" then response.write "checked"%>>
        开始日期
        <input name="key" type="text" value="<%=key%>">
        <input type="submit" name="Submit" value="搜  索">
      </form></td>
    <td><a href="client.asp" target="_blank">添加客户</a></td>
  </tr>
</table>
<table width="770" border="0" cellspacing="2" cellpadding="2">
  <tr bgcolor="#009999">
    <td>客户公司名</td>
    <td>开始日期</td>
    <td>结束日期</td>
    <td>金额</td>
    <td>业务员</td>
    <td>编辑</td>
    <td>删除</td>
  </tr>
  <%
  for i=1 to rs.recordcount
  if i mod 2=0 then
  bg="#f8f8f8"
  else
  bg="#ffffff"
  end if
  %>
  <tr>
    <td bgcolor=<%=bg%>><%=rs("company")%></td>
    <td bgcolor=<%=bg%>><%=rs("starttime")%></td>
    <td bgcolor=<%=bg%>><%=rs("endtime")%></td>
    <td bgcolor=<%=bg%>><%=rs("money")%></td>
    <td bgcolor=<%=bg%>><%=rs("yewu")%></td>
    <td bgcolor=<%=bg%>><a href="modify.asp?id=<%=rs("id")%>">编辑</a></td>
    <td bgcolor=<%=bg%>><a href="#2" onClick=Javascript:window.open("del.asp?id=<%=rs("id")%>","删除单页","width=300,height=200")>删除</a></td>
  </tr>
  <%
  rs.movenext
  if rs.eof then exit for
  next
  end if
  %>
</table>
</body>
</html>
现在是用access的,用sql的不通就换掉啦
人生如梦

TOP

这是ACCESS与SQL时间格式不同的原因造成的。可以试试以下方法:

"where date_field like '%" & replace(replace(replace(replace(key,":","%","/","%","-","%"," ","%" & "%'"

也许还有更好的方法,不过我目前只知道这个了。

TOP

不错。
我的MSN Spaces - 有空看看

我的百渡空间 - 有空看看





注意: 1、转贴时请先用论坛搜索进行关键字查找,以免重复发帖。

TOP

好!
人生如梦

TOP

上次说的解决方法其实有个问题。比如说,如果想查找的日期是05年05月05日,除了会合要求的记录会被返回,所有时间为05时05分05秒的记录也会被返回,而且,05日05时05分,或05月05日05时的记录也同样会被返回。所以这不是一个完善的方法。查了一下资料,看来使用DATEPART关键字是一个比较好的解决方法(也许有更好的)。如:

"WHERE DATEPART(mm, date_field) like '%" & key_m & "%' AND DATEPART(dd, date_field) like '%" & key_d & "%'..."

即将KEY变量中的年月日分出成多个变量,然后分别匹配。如key_m指的是月。

仅供参考

TOP

另外,DATEPART是一个MSSQK支持的SQL内部函数,不知道ACCESS支持不支持。

TOP

 11 12
发新话题