服务器日期时间与客户日期时间

时间:2013-03-06 22:46:51

标签: c++ sql networking mfc

我很可能错过了一些简单的解决方案,但我有一个可执行文件(用c ++编写),我使用和/或将当前日期时间保存到SQLite或Sybase数据库(服务器上都是可执行的数据库)问题我所拥有的是我希望它使用服务器计算机(数据库所在的位置)的日期时间而不是在客户端上使用日期时间。有没有办法让数据库从计算机所处的时间或其他方式获得服务器时间?这是可能的,还是我确保客户端与服务器同时进行?

现在我只是使用一个简单的SQL查询:

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

编辑:Sybase确实已经为您提供了正确的服务器时间,所以我只是在寻找SQLite解决方案

2 个答案:

答案 0 :(得分:1)

唯一真正的解决方案是使用ntp或sntp保持所有机器的时间同步。比任何其他解决方案都更容易和更准确,并且所有现代操作系统都有标准配置,可以与时间服务器同步。

您可以选择在某个外部服务器上同步,在您所在位置的服务器上安装一个,和/或购买一个专用设备作为网络的ntp服务器。这一切都取决于您是否希望时间在绝对意义上是正确的(这需要咨询一些外部时间信号)或仅在您的机器中。

答案 1 :(得分:1)

如果您想使用服务器时间,那么最简单的方法是通过执行您现在正在执行的操作或通过向您的应用添加其他图层来从服务器获取服务器,例如驻留在服务器上并将本地计算机时间发送到数据库的Web服务。此方法的好处是,如果您更改业务要求以允许其他时区的计算机使用您的应用程序,则本地时间不受影响。

除此之外,您必须确保机器是同步的,并不总是防弹,例如如果您使用外部时间信号并且它变得不可用。

相关问题