关于filter的设定 |
缺席
|
terry_zhou82
一般會員 ![]() ![]() 發表:8 回覆:22 積分:6 註冊:2012-08-28 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
你設定 diskplayformat 與底層的資料庫field 有何關係
請確認 這個欄位 "日期" 內存的格式是啥 比對 formatdatetime('hh:mm:ss',clientdataset1.fieldbyname(日期).asdatetime) 出來的又是什麼 ===================引 用 terry_zhou82 文 章=================== 我在cds的表格里面已经设定设定了 TDateField(DBGrid1.Columns.items[2].Field).DisplayFormat:='hh:mm:ss'; 在filter的属性里面写:'日期=' formatdatetime('hh:mm:ss',clientdataset1.fieldbyname(日期).asdatetime); 但是他死活都不运行,事么问题啊?急 |
terry_zhou82
一般會員 ![]() ![]() 發表:8 回覆:22 積分:6 註冊:2012-08-28 發送簡訊給我 |
|
leveon
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:389 積分:303 註冊:2012-02-12 發送簡訊給我 |
|
sryang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
Delphi 啟始的日期 1900 起算, 1899 無法識別的
===================引 用 terry_zhou82 文 章=================== 但是我做cds,是mdb转的,默认格式就是1899-12-31-22:22:09,在数据表里面改不了啊。 |
sryang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
TDateTime 實際上是一個 Double
以 "1899/12/30 00:00:00" 為 0 小於這個日期為負值,大於這個日期為正值 整數部份為 "Date",小數部份為 "Time" [code delphi] var d1, d2, d3: TDateTime; begin d1 := 0; d2 := -100; d3 := 100; ShowMessage(FormatDateTime('yyyy/mm/dd', d1)); // 1899/12/30 ShowMessage(FormatDateTime('yyyy/mm/dd', d2)); // 1899/09/21 ShowMessage(FormatDateTime('yyyy/mm/dd', d3)); // 1900/04/09 end; [/code] 回到樓主的問題 ClientDataSet 的 Filter 如果要設定用日期欄位篩選,必須將日期與時間同時指定才可以 以樓主的資料 '1899-12-31-22:22:09' 為例,Filter 就要設定為 「日期 = '1899/12/31 22:22:09'」 不過,日期中的分隔符號應該用「/」還是用「-」,則要與控制台的日期格式設定一致才行,不然會發生錯誤 另一種方法則是使用 FormatDateTime EncodeDate EncodeTime 去產生需要的 Filter 字串 FormatDateTime 裡面傳入的日期分隔符號都使用「/」,Delphi 會自動替換成控制台設定的日期分隔符號 [code delphi] var d: TDateTime; begin d := EncodeDate(1899, 12, 30) EncodeTime(22, 22, 9, 0); ClientDataSet1.Filtered := False; ClientDataSet1.Filter := '日期 = ''' FormatDateTime('yyyy/mm/dd hh:nn:ss', d) ''''; ClientDataSet1.Filtered := True; end; [/code] ===================引 用 P.D. 文 章=================== Delphi 啟始的日期 1900 起算, 1899 無法識別的
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2012-09-06 20:00:27, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |