2012-03-18 16 views
4

Delphiは* nixタイムスタンプを使用しません。他のアプリでは、私は* nixに変換してからMySqlに保存し、取り込み時にそれを元に戻しました。Delphi/MySql:DB対応コンポーネントのタイムスタンプ

ここでは、初めてDB認識コンポーネントを使用したいと考えています。ティムスタンプはどのように機能しますか?私は(私は)デルファイのティームスタンプ形式で保存できますか?または私は保存する前に* nixに変換shoudl?

+0

エポック時間は00からわずか数秒です。 00:01 01/1970 UTC – OnTheFly

+0

Unixエポックは - Delphiエポックはありません(Windowsエポックですか?)これはDelphi t/sをUnixタイムスタンプに変換します:= Round((Now() - 25569.0 {Unixの開始日Delphiの用語では}})* 86400) – Mawg

+0

nope、Windowsの時刻ゼロは1601です:-)ところで、ホイールを再開発しないでください。DateUtilsにはすでに便利な関数があります。 – OnTheFly

答えて

4

通常の使用のために何もする必要はありません。

私は何年もDelphi/MySQLを使用していましたが、使用していたすべてのデータアクセスコンポーネント(dbexpress/zeros/MyDAC)は自動的に変換を行います。タイムスタンプ値を手動で指定する必要がある場合は、テキスト形式(「yyyy/mm/dd hh:nn:ss」)を入力してください。

+0

+1そう、あなたのSQLが言う... INSERT INTO ... "タイムスタンプ" ...あなたはNow()を渡す? – Mawg

+3

MySQLタイムスタンプを使用している場合は、タイムスタンプフィールドのデフォルト値をCURRENT_TIMESTAMPに設定し、そのフィールドに値を割り当てずにフィールドの更新をスキップするだけで、タイムスタンプフィールドがレコードの作成/変更時に自動的に更新されます。フィールドに手作業で時間を与えたいのであれば、CURRENT_TIMESTAMPかNow()か希望の時間を "yyyy/mm/dd hh:nn:ss"のテキスト形式で渡すことができます。 – Justmade

+0

+1。非常に良い答え。 – kobik

関連する問題