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

搜尋日期的問題 謝謝!

答題得分者是:salo0610
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-06 23:00:42 IP:59.125.xxx.xxx 未訂閱
為什麼沒有辦法搜尋到呢
謝謝!謝謝!

資料表1

日期
2007/5/8
200/10/25
200/12/17


MaskEdit1設為!9999/99/00;1;
MaskEdit2設為!9999/99/00;1;
[code cpp]
String E31,E32;
E31=MaskEdit1->Text;
E32=MaskEdit2->Text;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 資料表1 where [日期]
Between " StrToDate(E31) " And " StrToDate(E32) " ");
ADOQuery1->Active=true;
ADOQuery1->Open();

[/code]

-謝謝大大的熱心回覆
------
-謝謝大大熱心的回覆!謝謝!
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-07 15:10:33 IP:122.116.xxx.xxx 訂閱
依我所知, 提醒您兩點
1. 有些 DB (至少ORACLE) BETWEEN 的左邊要 <= 右邊
請您 DEBUG 一下 StrToDate(E31) 和 StrToDate(E32) 之大小
2. StrToDate 要有一定格式的 STRING, 請再檢查一下設定, 或是先用
ShortDateFormat :='yyyy/mm/dd';
設一下.


===================引 用 l90425 文 章===================
為什麼沒有辦法搜尋到呢
謝謝!謝謝!

資料表1

日期
2007/5/8
200/10/25
200/12/17


MaskEdit1設為!9999/99/00;1;
MaskEdit2設為!9999/99/00;1;
[code cpp]
String E31,E32;
E31=MaskEdit1->Text;
E32=MaskEdit2->Text;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 資料表1 where [日期]
Between " StrToDate(E31) " And " StrToDate(E32) " ");
ADOQuery1->Active=true;
ADOQuery1->Open();

[/code]

-謝謝大大的熱心回覆
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2008-08-07 15:12:18, 註解 無‧
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-07 16:59:03 IP:220.132.xxx.xxx 未訂閱
用這樣的方式?? 可以嗎???
String E31,E32;
E31=MaskEdit1->Text;
E32=MaskEdit2->Text;
sSQL = " SELECT * FROM 資料表1 WHERE 日期欄位 >= :date1 AND 日期欄位期 <= :date2 ";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sSQL);
ADOQuery1->Parameters->ParamByName("date1")->Value = StartOfTheDay( StrToDate(E31) );
ADOQuery1->Parameters->ParamByName("date2")->Value = EndOfTheDay( StrToDate(E31) );
ADOQuery1->Open();
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-08-07 23:57:04 IP:59.125.xxx.xxx 未訂閱
可以了!謝謝大大的幫忙
不過我有個問題StartOfTheDay( ) ;和EndOfTheDay( );
這是什麼函數嗎還是只是提示我開始和結束日期呢
我想是提示吧

-謝謝大大的熱心回覆!謝謝!謝謝!
[code cpp]
String E31,E32,E33;
E31=MaskEdit1->Text;
E32=MaskEdit2->Text;
E33=Edit1->Text;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(" SELECT * FROM 資料表1 WHERE [111]='" E33 "' AND ( [日期] >= :date1 AND [日期] <= :date2) ");
ADOQuery1->Parameters->ParamByName("date1")->Value = StrToDate(E31);
ADOQuery1->Parameters->ParamByName("date2")->Value = StrToDate(E32);
ADOQuery1->Active=true;
ADOQuery1->Open();

[/code]



===================引 用 salo0610 文 章===================
用這樣的方式?? 可以嗎???
String E31,E32;
E31=MaskEdit1->Text;
E32=MaskEdit2->Text;
sSQL = " SELECT * FROM 資料表1 WHERE 日期欄位 >= :date1 AND 日期欄位期 <= :date2 ";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sSQL);
ADOQuery1->Parameters->ParamByName("date1")->Value = StartOfTheDay( StrToDate(E31) );
ADOQuery1->Parameters->ParamByName("date2")->Value = EndOfTheDay( StrToDate(E31) );
ADOQuery1->Open();
------
-謝謝大大熱心的回覆!謝謝!
系統時間:2017-12-18 9:08:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!