請問有關StrToDate 問題!! |
答題得分者是:Justmade
|
Ethan
版主 發表:101 回覆:170 積分:78 註冊:2006-07-05 發送簡訊給我 |
請問有關StrToDate 問題!!
目前我的database裡有一個欄位為 ymd 是varchar型態.
裡面存的資料為 20021201... 20021231.
現在我把這資料讀出來.
StrToDate(query1.FieldByName('ymd').AsString; 然後我想把它轉為Date型態,例如: 20021201 我想轉為 2002/12/01
在年、月、日中間加上 "/" 符號.
我試了很久就是不行??? 請各位前輩指導一下,謝謝!!
這跟database有關嗎?我是用mysql
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
StrToDate 原本的 Str 要附合使用者電腦的格式才行否則會出錯,所以若你的格式固定是 YYYYMMDD, 可用 EncodeDate 來做 : Var
MyDate : TDate;
ymd : string; ymd := Query1.FieldByName('ymd').AsString;
MyDate := EncodeDate(StrToInt(Copy(ymd,1,4)), StrToInt(Copy(ymd,5,2)),StrToInt(Copy(ymd,7,2))); 再轉你喜歡的 Str 格式 :
MyString := FormatDateTime('yyyy"/"mm"/"dd',myDate);
打錯很多東西 >.< 另補充一下 : 若使用 :
MyString := FormatDateTime('yyyy/mm/dd',myDate); 則分格符號會按使用者電腦而定,若是 / 則 2002/12/01 若是 - 則 2002-12-01 等等 但若使用 MyString := FormatDateTime('yyyy"/"mm"/"dd',myDate); 則一律使用 / 直接把 '20021231' 變 '2002/12/31' :
MyString := StrToInt(Copy(ymd,1,4)) '/' StrToInt(Copy(ymd,5,2)) '/' StrToInt(Copy(ymd,7,2)); 發表人 - Justmade 於 2003/05/14 15:26:40
|
Ethan
版主 發表:101 回覆:170 積分:78 註冊:2006-07-05 發送簡訊給我 |
很感謝chih,Justmade兄這麼快就回應小弟的問題,我是按照Justmade兄的做法,
稍做修改了一下.底下是我的結果. 感謝啦~~ var
ADate:TDateTime;
str,str1:string; str:= query1.FieldByName('ymd').AsString; ADate := EncodeDate(StrToInt(Copy(str,1,4)), StrToInt(Copy(str,5,2)), StrToInt(Copy(str,7,2))); str1:=FormatDateTime('yyyy/mm/dd',ADate);
showmessage(str1);
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |