先到先得!!!!(30分)

  • 主题发起人 主题发起人 ss
  • 开始时间 开始时间
S

ss

Unregistered / Unconfirmed
GUEST, unregistred user!
INTERBASE4.2/INTERBASE5中
1.界面中有两个TDateTimePicker得到起止时间.
2.DateBase中有一过程,
Create Procedure P_Cala (begin
Date,EndDate)
REturns(XX date,
XXX char(8),
........).....
3.程序中有:
...
Query1.SQL.add(select ... From P_Cala(begin
Date,EndDate));
...

请问:三个步骤中的日期参数怎样传递? 类型转换及参数调用?
配分方式: 迅速 准确 举例说明
问题特点: 简单 最迟两日内结束
(最好6.30 6:50前告诉我, 我要赶通勤车 ;) )
 
from 后面应该是表名,条件应该在where后.
如果只要得到日期和时间,没有必要使用过程,直接读DateTimePicker就可以.
Query1.SQL.Clear;
Query1.Sql.Add(select * from table where begin
gdate=:DateTimePicker1
and enddate=:DateTimePicker2);
Query1.Params[0].AsDate=DateTimePicker1.Date;
Query1.Params[1].AsDate=DateTimePicker2.Date;
Query1.Open;
如果需要字符,用Datetostr转换就可以了.
 
还有一问(其实是一个问题):为什么我传入日期参数却得不到正确的结果
用FORMATDATATIME('YYYY-MM_DD', begin
Date),
FORMATDATATIME('YYYY-MM_DD', EndDate),
如果限定范围为 1999-7-1 1999-7-3
确要在DateTimePicker中选择 1999-6-30 1999-7-4才行?为什么呀?
wgzhang,别急!你说的不太准确,此问题顺延至明天结算..
Cj,MenXin,Barton,Volan ...你们到了吗?
 
签到!
> 如果限定范围为 1999-7-1 1999-7-3
> 确要在DateTimePicker中选择 1999-6-30 1999-7-4才行?为什么呀?
你是问题是在没加=。
我想你在日期比较时没用>=而是用了>吧,当然不会得到想要的结果了。
 
听memxin的
Query1.Sql.Add(select * from table where begin
gdate>=:DateTimePicker1
and enddate<=:DateTimePicker2);
粗心了,因为急马上赶上班。
 
"from 后面应该是表名,条件应该在where后. " 此话错误.
人家调的是存储过程不是表.
interbase的日期字段得到的包括时间,所以有差异如"1999-06-30 00:00.00"
好像需使用Date函数,如:Date(begin
Date).
你可到www.interbase.com下载freeUDF,其中包括些关于日期比较的函数,
看看有用否.
 
半路出家,让各位见笑了,不过还是不明白。是不是把过程里返回的参数,赋给
select后面的变量?
SELECT [TRANSACTION transaction]
[DISTINCT | ALL] {* | <val> [, <val> ...]}
[INTO : var [, : var ...]]
FROM <tableref> [, <tableref> ...]
[WHERE <search_condition>]
看看InterBase的Reference又不象。
恳请rss和ss指教,谢谢!
 
To Rss
->差异如"1999-06-30 00:00.00"好像需使用Date函数,如:Date(begin
Date).
能否详细说说!
 
多人接受答案了。
 
后退
顶部