線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5396
推到 Plurk!
推到 Facebook!

如何把字串轉換日期(使用edit?.texe元件)

答題得分者是:h@visli
davinici
一般會員


發表:3
回覆:3
積分:1
註冊:2007-01-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-14 01:14:00 IP:218.170.xxx.xxx 訂閱
各位DELPHI的先進:
小弟我有一個問題需要急救!
問題說明:
我有一程式碼如下:
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select sum(公升)/max(里程數) as 每公里總成本 from 行車記錄');
if (trim(edit1.text)<>'') then
ADOQuery2.sql.add('where 車號=''' edit1.text '''');
ADOQuery2.sql.add('and 日期 =''' edit2.text '''and''' edit3.text '''');
ADOQuery2.Close;
ADOQuery2.Open;
end;

程式碼中可以看到我用了edit1.text、edit2.text、edit3.text三個元件,
我在edit2.text、edit3.text輸入字串(例:2003/1/10),但其為字串格式,我要如何將其轉為日期格式,我SQL的WHERE條件式如下:
ADOQuery2.sql.add('where 車號=''' edit1.text '''');
ADOQuery2.sql.add('and 日期 =''' edit2.text '''and''' edit3.text '''');

要怎麼修改才正確?
或是有更好的方式呢?
請各位程式高手、先進幫我解決吧!急需,因為是期末報告!
謝謝
程式新手
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-14 11:28:45 IP:59.40.xxx.xxx 訂閱
你如果用的是SQL Server數據庫,那你的代碼就是正確的(建議"and"保留字前後加上空格)。 不同的數據庫對日期類型字段的輸入表示可能不同。
還有一種方式,就是采用參數方法:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into tst values(:name, :dt)');
ADOQuery1.Parameters.ParamByName('name').Value := Edit1.Text;
ADOQuery1.Parameters.ParamValues['dt'] := StrToDateTime( Edit2.Text);
ADOQuery1.ExecSQL;
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
davinici
一般會員


發表:3
回覆:3
積分:1
註冊:2007-01-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-14 14:11:38 IP:218.170.xxx.xxx 訂閱
哇! 超感謝 h@visli 您的指導,
按照您的參數法我將我的程式碼作了下列修改:
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select sum(金額)/max(里程數) as 每公里總成本 from 行車記錄');
if (trim(edit1.text)<>'') then
ADOQuery2.SQL.Add('where 車號 =''' edit1.Text '''');
ADOQuery2.SQL.Add('and 日期 between (:da1) and (:da2)');
ADOQuery2.Parameters.ParamValues['da1'] := StrToDateTime( Edit2.Text);
ADOQuery2.Parameters.ParamValues['da2'] := StrToDateTime( Edit3.Text);
ADOQuery2.Close;
ADOQuery2.Open;
就可以用了!!
原來還可以用參數法阿!
程式果然很深澳阿!
謝謝啦!
P.S:我的程式碼與法修改成這樣是對的嗎?因為程式雖可跑,但還是有點擔心語法是錯的!!
系統時間:2024-04-26 7:38:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!