0

を使用して mysql テーブルからタイムスタンプを読み取っていOdbcDataReaderます。テーブルのデータを見ると、形式は2013-09-12 11:11:09. しかし、読者はそれを形式で読むようです12/09/2013 11:11:09

次に、これを別の mysql テーブルに挿入しようとしましたが、エラーが発生しました。

不正な日時値: 行 1 の列「timestamp」の「12/09/2013 11:11:09」

このフォーマットの違いをどのように整理できますか? 何らかの方法で Unix タイムスタンプ値を参照する必要がありますか?

4

2 に答える 2

1

「テーブル内」のデータをどのように見ていますか? 私は MySQL の実装に詳しくありませんが、Oracle および Sql Server では、日時の値が読み取り不能なバイナリ形式で格納され、クエリ ツールによって読み取り可能なタイムスタンプに変換されます。MySQL も同様のことを行っている可能性があります。

これを別のmysqlテーブルに挿入してみてください

データを挿入するときにフォーマットを気にするのは、本当に悪いことです。これは、パラメーター化されたクエリではなく、SQL インジェクション攻撃に対して脆弱な手法を使用していることを強く示しています。パラメーター化されたクエリを使用する場合は、C# の datetime 型をクエリ パラメーター値に直接割り当てると、ADO.Net オブジェクトが必要な書式設定を処理します。その時点で、正常に実行できるもの、DateTime.Parse()またはDateTime.TryParse()クエリの有効な入力になるものはすべてです。

于 2013-09-12T16:29:11.717 に答える