高手请进,马上解决

小豆好好 2003-04-22 07:47:42
我在搜索窗口中,有一个EDIT窗口
要求输入年份时,查询整个年的东东!
就是输入1999时,将1999年的全部显示出来;
我数据库里面的日期形式为1999-5-1;

我想的是实现下面的判断:

edit7.text-1-1<edit4.text<edit.text+1-1-1;
但不知道怎么实现
或者我的想法就是错的;请指教
...全文
44 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
小豆好好 2003-04-24
  • 打赏
  • 举报
回复
弄了半天,终于弄出来了
用的是Demonia(彷徨) 的方法,谢谢了

if (Trim(combobox2.Text)='起始日期') or (Trim(combobox2.Text)='验收日期') then

begin

sqlstr:=sqlstr + Trim(combobox2.text) ;
sqlstr:=sqlstr+' between ' + QuotedStr(edit1.text+ '-1-1') + ' and ' + QuotedStr(edit1.text + '-12-31' );
end
else
begin
...
end;
小豆好好 2003-04-24
  • 打赏
  • 举报
回复
to dashou_hs你看我下面的代码有什么错误
var sqlstr:string ;
startdate, enddate :string;

if (combobox1.Text='起始日期') or (combobox1.Text='验收日期') then
beginstartdate := edit1.Text + '-1-1';
enddate := edit1.text + '-12-31';
sqlstr:='select * from 123 where ';
sqlstr:=sqlstr + Trim(combobox1.text) ;
sqlstr:=sqlstr+' between :startdate and :enddate' ;
ParamByName('startdate').AsString := vstartdate;
ParamByName('enddate').AsString := vEndDate;
小豆好好 2003-04-23
  • 打赏
  • 举报
回复
谢谢各位了,由于今天有事,来太晚了,没办法编程了,明天就结贴!
kellerlee 2003-04-23
  • 打赏
  • 举报
回复
试试这
where substring(datatostr("tablename"."reName"),1,4='''+edit+'''
Demonia 2003-04-23
  • 打赏
  • 举报
回复
'where xxx between' + QuotedText(edit7.text+ '-1-1') + 'and ' + QuotedText(edit7.text + '-12-31'
dashou_hs 2003-04-23
  • 打赏
  • 举报
回复
对了, 如果你想查询到下一年的1月1日, 上面的vEndDate算法应当改为:
vEndDate := IntToStr(StrToInt(edit1.Text) + 1) + '-1-1';

不好意思了,刚才没看仔细.
dashou_hs 2003-04-23
  • 打赏
  • 举报
回复
var
vstartdate, venddate :string;
begin
vstartdate := edit1.Text + '-1-1';
venddate := edit1.text + '-12-31';
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from table where date between :startdate and :enddate');
ParamByName('startdate').AsString := vstartdate;
ParamByName('enddate').AsString := vEndDate;
try
Open;
//其它处理
except
//异常处理部分
end;
end;
end;

这样总行了吧? 简洁明了.
小豆好好 2003-04-23
  • 打赏
  • 举报
回复
没有人帮忙吗????
小豆好好 2003-04-22
  • 打赏
  • 举报
回复
有谁能帮写一下代码吗
不是我懒而是太苯,弄了半天还是一堆错误;
help
swayi21 2003-04-22
  • 打赏
  • 举报
回复
1:
:Date := Edit1.Text;
2:
Format()
小豆好好 2003-04-22
  • 打赏
  • 举报
回复
to pazee,
:(
我就是不会这里,请帮我写一下代码让我参考一下好吗,谢谢了
小豆好好 2003-04-22
  • 打赏
  • 举报
回复
但客户不一定输入的是1999,如果是1998,或2000,怎么办;
where xxx between 'xxxx-1-1'and'xxxx+1-1-1'//????????????
liumengchuan 2003-04-22
  • 打赏
  • 举报
回复
>=1999.1.1 0:0:0
and
<2000.1.1 0:0:0
耙子 2003-04-22
  • 打赏
  • 举报
回复
方法很多呀!不过比较快的可能是用between

where xxx between '1999-1-1' and '2000-1-1'

日期合成自己会弄吧?
xylfred 2003-04-22
  • 打赏
  • 举报
回复
我有个想法就是,deliphi里头不是有个控件是可以让你选择时间的嘛。你让客户选择他想要查询的时间段。然后你两头一夹,这不就出来了。
小豆好好 2003-04-22
  • 打赏
  • 举报
回复
to zyplwt
不好意思,
怎样才能实现那个条件语句呢,能不能写一下代码
zyplwt 2003-04-22
  • 打赏
  • 举报
回复
select * from 表名 where 条件
小豆好好 2003-04-22
  • 打赏
  • 举报
回复
select * from 123 where .... 就是这里的条件语句,我开始想的是如果输入的是1999,则判断1999-1-1到2000-1-1之间的数据
小豆好好 2003-04-22
  • 打赏
  • 举报
回复
恩,就是当在EDIT里输入年份时(形式为1999),我要将数据库中所有在1999年内的全显示出来,数据库内的日期为DATA型;这样的查询语句应怎么实现?
liwenqiu_2001 2003-04-22
  • 打赏
  • 举报
回复
说清楚一点!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧