全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1157
推到 Plurk!
推到 Facebook!

日期時間

尚未結案
kkym
一般會員


發表:17
回覆:13
積分:6
註冊:2003-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-29 13:22:44 IP:202.105.xxx.xxx 未訂閱
各位前輩,請教一下,公司的SQL資料裡,有一個日期欄位,內容為'2005/5/31 上午 12:00:55',我想在FORM裡做一個過濾的條件,比如讓使用者可以過濾,今天中午12點以後的資料,請問我FROM裡要放甚麼元件,才能讓使用者可以正確輸入日期時間、、、。 再來,觸發按鈕裡的SQL.TEXT要如何寫呢? 先謝謝大家囉
tea15
初階會員


發表:64
回覆:72
積分:27
註冊:2005-06-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-29 14:04:08 IP:211.20.xxx.xxx 未訂閱
放一個DBEdit... 主要是要連到sql的時間日期那個欄位... 在屬性DataField那裡選擇你的欄位
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-29 15:14:21 IP:202.62.xxx.xxx 未訂閱
您好﹗    小弟的想法如下﹕ 在Form中加一個Edit元件即可(如Name := EditTime)﹒ 一﹒針對使用者在此EditTime中輸入的內容設有一限制﹐即輸入的內容長度須為2﹐然后只允許輸入數字字符﹐方法如下﹕ 將EditTime元件的MaxLength屬性值設為2 在EditTime元件的OnKeyPress事件中輸入如下程式碼
begin
  if Not (Key In ['0'..'9', #8]) then
    Abort;    
end;
二﹒假設是使用ADOQuery元件﹐在相關的開始查詢作用的事件中輸入如下程式碼
begin
  ADOQuery1.Close;
  ADOQuery1.Clear;
  ADOQuery1.SQL.Add('Select * From 資料表名稱 Where ')
  ADOQuery1.SQL.Add('Hour(日期) > :MyTime');
  ADOQuery1.Parameters.ParamByName('MyTime').Value := StrToInt(EditTime.Text);
  ADOQuery1.Open;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
kkym
一般會員


發表:17
回覆:13
積分:6
註冊:2003-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-30 13:20:59 IP:219.134.xxx.xxx 未訂閱
感謝兩位的指導。 不過cashxin兄,日期的內容為【2005/5/31 上午 12:00:55】,如何讓使用者可以輸入去比對、、還是要在EDIT裡將上述的全部打? 然後,SQL裡的欄位屬性是DateTime,EDIT是字串、、怎麼讓他們去比呢? 抱歉,在下武藝不精,還望大家多加指導。 謝謝
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-30 14:13:16 IP:202.62.xxx.xxx 未訂閱
您好﹗    第一個問題﹐在EditTime元件中﹐使用需要輸入的只是日期時間格式中的小時﹐如您需要查詢的條件是以12:00:00以后的﹐使用者只需在此輸入12即可﹐再比如說是07:00:00以后的﹐使用者只需要在此輸入7即可﹒    第二個問題﹐小弟在SQL中使用Hour函數(Hour(日期))﹐這樣即是取出日期欄位中的小時﹐且此回傳值為Integer形態﹐然后在和EditTime元件Text內容做比對時﹐又使用StrToInt函數﹐將EditTime元件中的Text內容轉為Integer形態﹐這樣就是相同的形態比較了﹒
begin
  ADOQuery1.Close;
  ADOQuery1.Clear;
  ADOQuery1.SQL.Add('Select * From 資料表名稱 Where ');
  ADOQuery1.SQL.Add('Mid(日期),1,10 = Date() and ');
  //增加今天的判斷條件式
  ADOQuery1.SQL.Add('Hour(日期) > :MyTime');
  ADOQuery1.Parameters.ParamByName('MyTime').Value := StrToInt(EditTime.Text);
  ADOQuery1.Open;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================ 發表人 - cashxin2002 於 2005/06/30 14:25:58
------
忻晟
系統時間:2024-06-27 0:40:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!