在資料庫實作中,要處理時間一直是個惱人的問題。時間因為Windows設定關係,出來的格式有許多種,資料庫的支援也不一致,SQL查詢語法也不是很好寫。
在許多PHP+MySQL組成的免費軟體中,都用php處理時間的函數,也就是1970年1月1號到現在日期之間的秒數,在資料庫中存成Integer即可,不必轉換成datetime這種麻煩的格式。
但是,如果要用其它語言存取MySQL這個數字時,要把它換成時間就麻煩了。找了半天,終於有一段程式碼可以做這個轉換。
procedure TForm1.ZQuery1CalcFields(DataSet: TDataSet);
var result: Tdatetime;
begin
Result:=EncodeDate(1970,1,1)+(((zquery1.FieldByName('timefinish').AsInteger)+8*3600)/86400);
Zquery1.FieldByName('time').AsDateTime:=result;
end;
沒有留言:
張貼留言