各位英雄,这条查询语句为什么会错?(50分)

  • 主题发起人 主题发起人 cwt
  • 开始时间 开始时间
C

cwt

Unregistered / Unconfirmed
GUEST, unregistred user!
所用数据库为access,
代码如下:
adoquery1.Close;
adoquery1.SQL.Text:=
'select * from xtable where [id]=562 '+
'and ([time] between #7/15/02 07:00:00# and #7/15/02 15:00:00#)';
adoquery1.Open;
报错为“不正常地定义参数对象,提供了不一致或不完整的信息。”
但是在access中却可以执行。请问这是为什么?????
 
用add试试
 
select month(cast('02/07/15 17:00:00'as datetime))
不用转换也可以,直接用'02/07/15 17:00:00'
应该年月日
 
to yangxiao_jiang:
老兄,没有用啊!!!
 
用标准日期格式试一下,2002-07-15,或者用大于小于号吧。
 
to cozo:
都一样。就没有人知道该怎样吗?
急,在线等待。
 
SQL Server 可以识别以下列格式括在单引号 (') 中的日期和时间:
字母日期格式(例如,'April 15, 1998')
数字日期格式(例如,'4/15/1998'、'April 15,1998')

SQL Server 在运行时计算 datetime 常量。用于某种语言期望的日期格式的日期字符串,
如果由使用不同语言和日期格式设置的连接来执行查询,则可能无法识别。例如,下面的视图对于语言设置为美国英语的连接可以工作正常,但对于其它语言设置的连接就不能工作正常:
CREATE VIEW USA_Dates AS
SELECT *
FROM Northwind.dbo.Orders
WHERE OrderDate < 'May 1, 1997'

 
日期格式错误
 
to zbsfg:谢谢你,不过我用的是中文版的access。
to 特尔斐:日期格式为什么错误?
 
我在ACCESS中也是跟你一样用#号的,我用DIMAOND1。97,可能运行呀
sql_part :='(letters.status='+inttostr(nOptionState)+') and ';
//dBegin,dEnd :Tdatetime; 查找起始时间,终止时间
if lOptionDate then
sql_part :=sql_part+'(letters.regdatetime between #'+datetostr(dBegin)+'# and #'+datetostr(dEnd)+'#) and ';
 
to zbsfg:
光有日期是对的,加上时间就错了。
 
各位,我已经搞定了,就不麻烦大家了。见者有分。
 
怎么搞定的啦,我也遇到了呀
 
后退
顶部