新微赢技术网
标题:
从字符串转换为 datetime 时发生语法错误。
[打印本页]
作者:
妈妈猪的一天
时间:
2010-1-10 06:56
标题:
从字符串转换为 datetime 时发生语法错误。
做的一个订单查询系统,从日期查询订单,用的是ASP+SQL.
从"日期-日期"查询,就是从时间段查询.
在表单里有两个"INPUT",一个是PurBD,一个是PurBd2.
所用语句是:
StrSQL=StrSQL+"and dBillDay between '%"+Request.Form("PurBd")+"%' and '%"+Request.Form("PurBd2")+"%'"
SQL数据库中类型为DATATIME,长度为8.
查询时出错:
错误类型:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
从字符串转换为 datetime 时发生语法错误。
/pur_list.asp, 第 56 行
POST Data:
PurBn=&PurBd=2007-01&PurBd2=2007-01&PurBrd=&PurUp=%B2%E9%D1%AF
用SQL查询分析器查询时,
格式是
2007-01-01 00:00:00.000
上网查的都和我的不同.为什么呢?
作者:
导演
时间:
2010-1-10 06:56
假如上面的:
PurBd= FormatDateTime(Date, 1)
PurBd2= FormatDateTime(Date, 1)
改为:
Request.Form("PurBn")= FormatDateTime(Date, 1)
Request.Form("PurBd2")= FormatDateTime(Date, 1)
就会提示:
错误类型:
Microsoft VBScript 运行时错误 (0x800A01B6)
对象不支持此属性或方法: 'Request.Form'
作者:
边走¤边爱
时间:
2010-1-10 06:56
试了一天多,还是出现错,我已经用了FORMAT........
代码如下 :
<%
Function genSQLstr()
Dim sId,PurBd,PurBd2
sId=session("sId")
PurBd= FormatDateTime(Date, 1)
PurBd2= FormatDateTime(Date, 1)
if Request.Form("PurBn")<>"" then
StrSQL=StrSQL+"where sBillNo like '%"+Request.Form("PurBn")+"%'"
else
StrSQL=StrSQL+"where sSuppId='"& sId &"'"
end if
if Request.Form("PurBd")<>"" and Request.Form("PurBd2")<>"" then
StrSQL=StrSQL+"and dBillDay between '%"+Request.Form("PurBd")+"%' and '%"+Request.Form("PurBd2")+"%'"
end if
if Request.Form("PurBrd")<>"" then
StrSQL=StrSQL+"and dRecDate = '%"+Request.Form("PurBd")+"%'"
end if
' 只获取到自己的订单
strSQL=strSQL & " and sSuppId='" & Replace(sId,"'","''") & "'" ' 防止注入攻击
作者:
月半弯
时间:
2010-1-10 06:56
查询时先格式化
format
作者:
.`D.D`地`
时间:
2010-1-10 06:57
模糊查询好象不需要格式化吧,要不就不是模糊查询了
作者:
【洳☆淉】
时间:
2010-1-10 06:57
dhdhzzw 在 2008-7-17 15:31 的发言:
顺便说一下,asp里'%"+Request.Form("PurBd")+"%'和'%"&Request.Form("PurBd")&"%'的区别在哪里?
我当然不知道啦........
我只知道他们都是变量......
相信这个你也知道啦~
哈哈
作者:
无敌美少女
时间:
2010-1-10 06:57
顺便说一下,asp里'%"+Request.Form("PurBd")+"%'和'%"&Request.Form("PurBd")&"%'的区别在哪里?
作者:
龍2132
时间:
2010-1-10 06:57
dhdhzzw 在 2008-7-17 15:31 的发言:
顺便说一下,asp里'%"+Request.Form("PurBd")+"%'和'%"&Request.Form("PurBd")&"%'的区别在哪里?
一,你给的这段代码不完整(语法上说),提问时尽量用完整的、有意义的代码。
二,在这里没有任何区别。
三,asp里,分为JScript和VBScript讨论,JScript里必须用加号。
四,
连接运算符 (&)
强制两个表达式进行字符串连接。
result = expression1 & expression2
参数
result
任意变量。
expression1
任意表达式。
expression2
任意表达式。
说明
任一 expression 不是字符串时,它将被转换为 String 子类型。如果两个表达式都为 Null,result 也为 Null。然而,如果仅有一个 expression 为 Null,则它和其他表达式连接时,按零长度字符串("") 处理。任何表达式为 Empty 时也按零长度字符串处理。
加法运算符(+)
计算两个数之和。
result = expression1 + expression2
参数
result
任意数值变量。
expression1
任意表达式。
expression2
任意表达式。
说明
虽然也可以使用 + 运算符连接两个字符串,但是您仍应使用 & 运算符进行字符串的连接以避免混淆,提供易理解的代码。
这是因为在使用 + 运算符时,有可能无法确定是做加法还是做字符串连接。
表达式的基本子类型决定了 + 运算符所做的操作,如下表所示:
如果 则
两个表达式都是数值 相加
两个表达式都是字符串 连接
一个表达式是数值,另一个表达式是字符串 相加
如果一个表达式或两个表达式都为 Null 表达式,则 result 为 Null。如果两个表达式都为Empty,则 result 为 Integer 子类型。但是如果一个表达式为 Empty,则返回另一个表达式作为 result。
作者:
欧阳风
时间:
2010-1-10 06:57
查了一下,FORMAT DATATIME是吗?
FormatDateTime 函数
返回表达式,此表达式已被格式化为日期或时间。
FormatDateTime(Date[, NamedFormat])
参数
Date
必选项。要被格式化的日期表达式。
NamedFormat
可选项。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。
设置
NamedFormat 参数可以有以下值:
常数 值 描述
vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。
vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。
vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。
vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。
vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。
说明
下面例子利用 FormatDateTime 函数把表达式格式化为长日期型并且把它赋给 MyDateTime:
Function GetCurrentDate
'FormatDateTime 把日期型格式化为长日期型。
GetCurrentDate = FormatDateTime(Date, 1)
End Function
但是我还是不太明白.....
作者:
随chu风liu
时间:
2010-1-10 06:57
Response.write StrSQL
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2