初级问题,SQL用参数进行日期查询时,提示时间日期格式无效?(100分)

和绅

Unregistered / Unconfirmed
GUEST, unregistred user!
Query1->SQL->Add("SELECT * FROM temp ");
Query1->SQL->Add("WHERE (ddate< :pDate1)");
Query1->ParamByName("pdate1")->AsDate = StrToDate(DateTimePicker1->Date);
accessXp 中,temp 表中有一个日期型ddate。请请问那儿出错了?
 
Query1->SQL->Add("SELECT * FROM temp ");
Query1->SQL->Add("WHERE (ddate< :pDate1)");
Query1->ParamByName("pdate1")->AsDate =DateTimePicker1->Date;
 
看看你的系统默认的短日期格式, 年份是不是只有两位?
最好把 StrToDate() 换成 FormatDateTime("yyyy-mm-dd", DateTimePicker1->Date);
 
把strtodate去掉进行了,直接引用DateTimePicker1->date
 
Query1->ParamByName("pdate1")->AsDate =DateTimePicker1->Date
 
To snjat:
问题依旧;
TO raiboi :
短日期格式,长日期格式,不限制(不填)三种我都试了,不行。
提示:Microsoft ODBC Microsoft Access 驱动程序.时间日期格式无效.(null).
另:对系统中的DBDEMOS下的orders进行查询正常。
 
FormatDateTime('YYYY"-"MM"-"DD',Date)
 
日期要加引号的:
select * from table1 where theTime > '2002-05-20'
 
ddate 字段有值吗?
另外, temp是SQL的关健字吧?
 
To raiboi:
有的,数据库名设为其他也一样。
 
我刚用Desktop 7 打开temp表,发现ddate字段数据都如下:0:00:00, 02-2-10,而在access 显示却是2-02-01,是否是这个原因。
另如是的话,怎样设置才能使字段中不含时间(只含日期)。
 
我已发现问题所在了。
Query1->ParamByName("pdate1")->[red]AsDateTime [/red]=DateTimePicker1->Date,就行了。
但新的问题又出来了,我只需要date ,而不要time ,access中只有一个日期/时间型。
怎么设置?
 
那就 Query1->ParamByName("pdate1")->AsDateTime = FormatDateTime("yyyy-mm-dd", DateTimeToStr(DateTimePicker1->Date);
:) 也不知道对不对
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
823
SUNSTONE的Delphi笔记
S
顶部