2016-03-22 18 views
0

マシンAは、SQLクエリを実行しているアプリケーションサーバーです。 マシンB:sqlserverがセットアップされています。彼らは異なるタイムゾーンにあります。マシンAがISTに、マシンBがCSTで マシンAでsqlクエリーを実行して、SQL Serverの現在時刻ではなく現在時刻を取得したいとします。Sqlシステムの現在時刻を取得するクエリ

たとえば、私はこれらすべての機能を試してみましたが、彼らはマシンBを返します(SQL Serverの現在の時刻) SELECT SYSDATETIME() 、SYSDATETIMEOFFSET() 、CURRENT_TIMESTAMP 、GETDATE()

私はJavaのことで、現在のタイムマシンを取得し、それを渡すことができますsqlのクエリにフェッチする方法はありますか?

+0

なぜSQL Serverはリモートコンピュータの時刻を知っていますか? – user1666620

+0

特定のクエリでは、それに応じてレコードを取得するためのシステム時間が必要です。 – ankit

+0

私の質問は修辞的だった。データベースにリモートコンピュータのローカル時刻を格納する場合は、SQLスクリプトまたはストアドプロシージャのパラメータとして追加します。 – user1666620

答えて

0

いいえ、SQLはサーバーにコマンドを送信するので意味があります。 SQL Serverが魔法のようにあなたのマシンに行き、コードを実行することを期待していますか?

一般的なアプローチは、SQLがサーバーに(文字列として)送信されるときに、すべてのローカル処理(アプリケーションサーバーレベル)が完了することです。

また、アプリケーションの内部タイムスタンプはすべて(サーバーのタイムゾーンに関係なく)UTCになっているため、タイムゾーン変換はUIでのみ行われますレベルコード。

いいえ、あなたが望むものは実行できません。ほとんどのアプリケーションでは、データベース外の問題を処理するため、必要ありません。

+0

ありがとうございます。それはAppサーバーの時間を照会する意味がないようだ。 Javaコードを使って提供する方が良い。 – ankit

0

他の言語のDateTime Classツールを使用する必要があります。

現在の時刻は、保存されているデータではないため、データベースからは検索しません。

SQLで実行すると解決策はありませんが、実際にJavaやC#などの言語で処理する必要があります。プログラムがマシンで実行されるため、マシンの時刻にアクセスできるからですしたがって、彼らはそれにアクセスしています。

関連する問題