日期範圍搜尋及設計 |
答題得分者是:timhuang
|
stonys
初階會員 ![]() ![]() 發表:64 回覆:111 積分:38 註冊:2002-09-28 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
select * from tableA where FDate between '2003/01/01' and '2003/05/05' or select * from tableA where FDate >= '2003/01/01' and FDate <= '2003/05/05' 存在資料庫中的日期存法, 最好的當然是用 DateTime 的方式來存, 但是要看資料庫是否有支援, 可以先說明一下你使用的資料庫為何嗎? 要將時間轉為 092/05/05 可以使用 formatdatetime('ee/mm/dd',now) 但是只會取到 92/05/07, 若要多補一個0 的話可以用RightStr('0' FormatDateTime('ee/mm/dd',now),9), 但是 ee 的語法只有兩位, 是不能超過兩位的, 若是民國年破百的話不好處理, 建議使用西元年, 這樣可以使用 FormatDateTime('yyyy/mm/dd',now) 即可.
|
stonys
初階會員 ![]() ![]() 發表:64 回覆:111 積分:38 註冊:2002-09-28 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
這是每台電腦設定 locale 的問題. 你可以在控制台的地區選項中看一下日期的設定, 月曆類型就明白了. 但是使用 FormatDateTime('yyyy/mm/dd', Now) 傳回的一定是西元年. DateTimePicker 是依據 locale 的設定來顯示的哦~ ---------------------------------
西曆及中曆的設定 windows locale info
在繁體中文,依照個人電腦使用的不同,可以顯示民國或西元,當需要利用程式來控制時,就需要透過WIN API來設定,程式如下:
procedure TForm1.Button1Click(Sender: TObject); var DefaultLCID: LCID; CS:string; begin DefaultLCID := GetThreadLocale; //修改為西曆 SetLocaleInfo(DefaultLCID, LOCALE_ICALENDARTYPE, '1'); cs:='intl'; SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Integer(CS)); end; procedure TForm1.Button2Click(Sender: TObject); var DefaultLCID: LCID; CS:string; begin DefaultLCID := GetThreadLocale; //修改為民國曆, 英文版系統無效!! (always 是西曆) SetLocaleInfo(DefaultLCID, LOCALE_ICALENDARTYPE, '4'); cs:='intl'; SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Integer(CS)); end;----------------------------------------------- 也請參考這篇: http://delphi.ktop.com.tw/topic.php?topic_id=239 |
stonys
初階會員 ![]() ![]() 發表:64 回覆:111 積分:38 註冊:2002-09-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |