2012-04-29 16 views
0

WCFサービスとWindowsアプリケーションは、どちらも異なるタイムゾーンにあります。これで、このWindowsアプリケーションは、WCFサービスを通じてデータを保存および取得します。WCFサービスからの無効なdatetime値の取得

datetimeのデータ型のログとして列を持つテーブルの一括挿入を行うと、このローカルのdatetimeをデータベースに保存できますが、このテーブルを取得しようとすると、 logtimeカラム。

そう多くの同様の質問が見つかりましたが、UTCの時間を実装することはできません。私が参照しているテーブルには5〜10秒ごとに更新し続ける千のレコードが含まれています。

WCFサービスによって行われるこの自動日時変換を停止する方法はありますか。

ご案内しています。

答えて

1

これは、「logtime列の値がすべて間違っている」とはどういう意味ですか?時間はデータベースサーバーの現地時間ですか?それはあなたが望むものではありませんか?

logtimeカラムをクライアントマシンのタイムゾーンにしたいとします。そうですか?また、指定されていないため、SQL Server内のGetDate()のデフォルト値を使用してlogtimeカラムを設定していると仮定しています。私はまた、指定されていないので、あなたがSQL Serverを使用していると仮定しています。

  1. 変更クライアント・マシンと同じタイムゾーンにデータベースサーバのタイムゾーン:あなたは、クライアントのタイムゾーンを使用する場合は

    は、その後、あなたはいくつかのオプションがあります。

  2. パラメータとしてWCFサービスに時刻を渡します。 (私は、WCFサービスがデータベースサーバーと同じタイムゾーンのサーバー上で実行されていると仮定しています)
  3. データを取得するときはそのままにして、正しいタイムゾーンに変換します。

これ以上のオプションがあるかもしれませんが、私が前提を明確にしておけば役に立ちます。

「WCFサービスによる自動日時変換は何ですか?」とはどういう意味ですか?それは時間のためのローカルタイムゾーンを使用していますか?そうであれば、それ自身ではなく時間を受け入れる必要があります。おそらく、いくつかのコードを表示する必要があります。それは助けになるだろう。

+0

OMG!ボブ、私は信じることができません、あなたの前提はどうやって真実かもしれません。 :)残りの質問にお答えします。値が間違っていると、データベースサーバーのlogtime列に正しい値が表示されます。しかし、私はそれを取得しようとすると、logtimeの列には、データベース上で見ることができる時間でも、データベースサーバ上のローカル時間でもない値が含まれています。これは、サービスがローカルタイム(サーバー)としてログタイムを想定しているため、私のタイムゾーンに変換しようとしているため、私にとって間違っています。 – Bravo

+0

あなたの最初の選択肢はうまく見えますが、私のクライアントアプリケーションが世界のどこにでもあることができるので、私のシナリオには合いません。私はあなたの2番目と3番目のオプションを使用することはできません私は言ったように私は、私は送信し、データのトンを取得するので、私はすべてを変換することはできません。その実現不可能 – Bravo

+0

あなたのコードを投稿する必要があります。 –

関連する問題