0

私はおそらくいくつかの簡単な解決策を見逃していますが、現在の日時を使用したり、SQLiteまたはSybaseデータベース(両方の実行可能ファイルはサーバー上にあります)に保存したりする実行可能ファイル(c ++で記述)がありますクライアントで日時を使用する代わりに、サーバーコンピューター(データベースが存在する場所)からの日時を使用したいということです。データベースに現在のコンピューターからの時間を与える方法、またはサーバーの時間を取得する他の方法はありますか?これは可能ですか、それともクライアントがサーバーと同じ時間になるようにしましたか?

現在、私は単純なSQLクエリを使用しています。

Select dateTime('now'); //for SQLite
Select Now(*); //for Sybase

編集:Sybaseはすでにサーバー時間を正しく提供しているので、SQLiteソリューションのみを探しています

4

2 に答える 2

1

唯一の実際の解決策は、ntpまたはsntpを使用してすべてのマシンの時刻を同期させることです。他のどのソリューションよりも簡単で正確であり、すべての最新のOSには、タイムサーバーと同期するための標準的なプロビジョニングが搭載されています。

外部サーバーで同期するか、場所のサーバーにインストールするか、ネットワークのntpサーバーとして機能する専用デバイスを購入するかを選択できます。それはすべて、時間を絶対的に正確にするか(外部の時報を調べる必要があります)、マシン間でのみ正確にするかによって異なります。

于 2013-03-06T23:07:23.320 に答える
1

サーバー時間を使用する場合、最も簡単な方法は、現在行っていることを実行するか、アプリに別のレイヤーを追加することによって、サーバーからサーバー時間を取得することです。たとえば、サーバー上に存在し、送信するWebサービスなどです。データベースへのローカルマシン時間。この方法の利点は、他のタイムゾーンのマシンがアプリを使用できるようにビジネス要件を変更した場合でも、現地時間は影響を受けないことです。

それ以外は、マシンが同期されていることを確認する必要があります。これは、外部の時報を使用して使用できなくなった場合など、常に防弾とは限りません。

于 2013-03-06T23:17:13.367 に答える