在我的應用程序中,我從一個數據庫中讀取數據並寫入第二個數據庫。該應用程序很快且很髒,所以我正在使用FieldByName
和ParamByName
查詢中使用AsString
來讀/寫。覆蓋系統日期格式
這從那裏數據類型是Date
或DateTime
至於我可以告訴FieldByName.AsString
除了適用於我的所有用例使用系統ShortDateTime
格式返回日期爲(對我來說)DD/MM/yyyy。該數據庫預計要寫入爲YYYY-MM-DD
根據Delphi Basics我應該能夠設置ShortDateFormat
我所需要的日期,但似乎在XE5這不再的情況下(正確?)
在此處進一步挖掘返回thesetwo使用TFormatSettings
覆蓋本地設置的問題。但是,這兩個都直接使用StrToDate
和FormatDateTime
中的結果格式設置。
所以兩個問題
1)我可以告訴我的應用程序重寫系統ShortDateFormat
?
2)如果是這樣,如何(如果沒有,我有B計劃)?
您應該在數據庫中使用日期時間類型列,並使用'AsDateTime'投射來填充值。將日期時間存儲爲字符串是不好的。 – TLama
DB中的字段設置爲'DateTime'。在使用'AsDateTime'寫入列時,MySQL似乎總是窒息(至少在DBX下),所以我通常使用'FormatDateTime'來編寫'AsString'。在*這種情況下*保持字符串可能是可取的。 –
聽起來像你應該找出爲什麼你不能使用'AsDateTime'。 –