如何 實現時間段內查詢 |
尚未結案
|
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
各位GG、MM、DD: 現有問題請教各位,敬請指教! NO1. 用DATETIMEPICKER1作為起點時間選擇項 用DATETIMEPICKER2作為終點時間選擇項 在資料庫中有一欄位是DATETIME 如何才能實現選擇起點時間和終點時間查詢? ___________________________________________________________!
NO1與NO2,不相連的問題,指教時,請注明是NO1 OR NO2,謝謝!
___________________________________________________________! NO2. 在查詢時,我在查詢時條件比較廣,如像查詢開頭為8KK的所有目標
我寫出部份,請高手指教,如何在EDIT1中輸入8KK,即查詢出來,我是用的SQL命令查詢,如下:
SELECT * FROM DATA
WHERE 欄位 LIKE '8KK%' ____________________________________________________________!
NO1與NO2,不相連的問題,指教時,請注明是NO1 OR NO2,謝謝!
____________________________________________________________!
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
HI: NO1 :
SQL
SELECT *
FROM TABLE
WHERE DATETIME BETWEEN :P_START_DATETIME AND :P_END_STARTDATETIME QUERY1.CLOSE;
QUERY1.PARAMBYNAME('P_START_DATETIME').ASDATETIME := DATETIMEPICKER1.DATETIME;
QUERY1.PARAMBYNAME('P_END_DATETIME').ASDATETIME := DATETIMEPICKER1.DATETIME;
QUERY1.OPEN; NO2 :
SELECT * FROM DATA
WHERE 欄位 LIKE :P_STRING || '%' QUERY1.CLOSE;
QUERY1.PARAMBYNAME('P_STRING')ASSTRING := EDIT1.TEXT;;
QUERY1.OPEN; 主要都是在 Query 中,已經帶有參數,並於Query Open 前,先將參數傳入,Query 寫好後,別忘記在 Params 下去定義各個參數的 Type,否則是會出現錯誤訊息的
PS:我用的是 Oracle 語法,若是使用 MS SQL 請將 '||' 換為 '+'
--------------------------------
小弟才疏學淺,若有謬誤請不吝指教
--------------------------------
------
Fishman |
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
請見介面的說明: DATETIMEPICKER1 EDIT 數據庫的結構為:(數據名為XF)
SERIAL_NUMBER DATE_TIME SHIPPING_NUMBER 現問題如下,經FISHMAN指教如下,敬請高手指點迷津
NO1 :
SQL
SELECT * FROM XF
WHERE DATETIME BETWEEN :P_START_DATETIME AND :P_END_STARTDATETIME 請問(SQL無法確認P_START_DATETIME AND :P_END_STARTDATETIME) QUERY1.CLOSE;
QUERY1.PARAMBYNAME ('P_START_DATETIME').ASDATETIME :=DATETIMEPICKER1.DATETIME;
QUERY1.PARAMBYNAME ('P_END_DATETIME').ASDATETIME :=DATETIMEPICKER2.DATETIME;
QUERY1.OPEN; NO2 :
SELECT * FROM DATA
WHERE SHIPPING_NUMBER LIKE :P_STRING || '%'
(請問:P_STRING || '%'是何意?SQL無法確認)
QUERY1.CLOSE;
QUERY1.PARAMBYNAME('P_STRING')ASSTRING := EDIT1.TEXT;
QUERY1.OPEN; 以上敬請指教!
|
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
請見介面的說明: DATETIMEPICKER1 EDIT 數據庫的結構為:(數據名為XF)
SERIAL_NUMBER DATETIME SHIPPING_NUMBER 現問題如下,經FISHMAN指教如下,敬請高手指點迷津 NO1 :
SQL
select * FROM XF where Datetime BETWEEN 'DATETIMEPICKER1.DATETIM' AND 'DATETIMEPICKER2.DATETIM' button:
QUERY1.CLOSE;
QUERY1.PARAMBYNAME('DateTime').ASDATETIME :=DATETIMEPICKER1.DATEtime;
QUERY1.PARAMBYNAME('DateTime').ASDATETIME :=DATETIMEPICKER2.DATEtime;
QUERY1.OPEN; 以上程序無法運行,敬請高手指教!
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: suntao008,你的資料庫是 ?? 你所謂的SQL無法確認,是否是因為參數沒有定義型別?
請在寫完 SQL Command 後,於下列位置定義個個參數
P_STRING || '%'是何意?SQL無法確認)
將傳入之參數 P_STRING 加上 '%' 若是 MS SQL 則使用 P_STRING + '%' 請再試試看,加油!!
--------------------------------
小弟才疏學淺,若有謬誤請不吝指教
--------------------------------
------
Fishman |
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
請見介面的說明: DATETIMEPICKER1 EDIT 數據庫的結構為:(數據名為XF)
SERIAL_NUMBER DATETIME SHIPPING_NUMBER 現問題如下,經FISHMAN指教如下,敬請高手指點迷津 NO1 :
SQL
select * FROM XF where Datetime BETWEEN 'DATETIMEPICKER1.DATETIM' AND 'DATETIMEPICKER2.DATETIM' button:
QUERY1.CLOSE;
QUERY1.PARAMBYNAME('DateTime').ASDATETIME :=DATETIMEPICKER1.DATEtime;
QUERY1.PARAMBYNAME('DateTime').ASDATETIME :=DATETIMEPICKER2.DATEtime;
QUERY1.OPEN; 以上程序無法運行,敬請高手指教! 請高手修正,能正常運行!謝謝!
|
leo2568
中階會員 發表:54 回覆:124 積分:70 註冊:2003-09-21 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: No1:
1.
引言: SQL select * FROM XF where Datetime BETWEEN 'DATETIMEPICKER1.DATETIM' AND 'DATETIMEPICKER2.DATETIM'煩請檢查 Query1 的 SQL Command SELECT * FROM TABLE WHERE DATETIME BETWEEN :P_START_DATETIME AND :P_END_DATETIME 其中,P_START_DATETIME 與 P_END_DATETIME 是 Open Query 時的參數 2. 請確認 DATETIMEPICKER1 與 DATETIMEPICKER2 的 type 若為 TDateTimePicker 則 QUERY1.CLOSE; QUERY1.PARAMBYNAME('P_START_DATETIME').ASDATETIME := DATETIMEPICKER1.DATETIME; QUERY1.PARAMBYNAME('P_END_DATETIME').ASDATETIME := DATETIMEPICKER2.DATETIME; QUERY1.OPEN; 若為 TEdit 則 QUERY1.CLOSE; QUERY1.PARAMBYNAME('P_START_DATETIME').ASDATETIME := STRTODATE(DATETIMEPICKER1.TEXT); QUERY1.PARAMBYNAME('P_END_DATETIME').ASDATETIME := STRTODATE(DATEDATETIMEPICKER2.TEXT); QUERY1.OPEN; -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
您好:
依你所问的问题:
NO1:
====================================================================
procedure TForm.findBtnClick(Sender: TObject);
var date1,date2:TDate;-----定义好变量类型;
begin
date1:=DateTimePicker1.Date ;
date2:=DateTimePicker2.Date; with query1 do
begin
close;
sql.Clear;
sql.Add('SELECT * FROM "你要查询的资料库表"');
sql.Add('where (你那个DATETIME栏位>=:rq1)and (你那个DATETIME栏位<=:rq2)');
end;
Query1.Params [0].DataType :=ftdate;
Query1.Params [0].Value :=date1;
Query1.Params [1].DataType :=ftdate;
Query1.Params [1].Value :=date2;
Query1.Active :=true;
end;
然后通过选择DATETIMPICKER1和DATETIMPICKER2实现时间段的查询;
===================================================================== NO2:
SELECT * FROM DATA
WHERE 欄位 like"' '%' EDIT1.text '%"
===================================================================== 其实Fishman,leo2568两位大大都已经将的问题回答清楚了,你认真看看哦! 發表人 - deity 於 2004/01/11 11:12:45
|
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |