日期:2014-05-18  浏览次数:20791 次

从数据库中获取一个系统时间,然后维护它,即做成一个时钟,能够返回现在的时间,怎么做
因为如果用DateTime.Now的话,可能电脑时间不一定准确,因此想从数据库中获取一个准确的时间sysdate,然后程序自己从这个sysdate开始计时,相当于做成一个时钟,只要能返回现在的时间即可,怎么做最简单(同时还要考虑到效率)

------解决方案--------------------
首先通过sql获取服务器时间 DataTime serverTime = Convert.ToDateTime( DB.Select("select getdate()"));

然后界面上弄个timer控件,Interval属性设置为1000,
Tick事件中 
serverTime = serverTime.AddMinutes(1);
Label1.Text = serverTime.ToString("yyyy-MM-dd HH:mm:ss");

这样基本上保证时间一致,但不排除其他因素,如电脑自己的时钟问题什么的。。可以隔一段时间同步一下
------解决方案--------------------
如果想在客户端显示一下服务器时间的话,可以弄一弄,如果是为了更新数据库时使用这个时间,任何方法都不可靠,一但时间乱套了带来的后果可能是灾难性的.最可靠的同步方式也就是隔几秒传一次心跳,这样一来服务器的负担更重,而且也不保证不会出问题.
探讨
引用:

还是没明白你的意思 你设置这个时钟的目的是??


在向数据库提交记录的时候,有一列是时间,虽然可以直接用数据库的sysdate来填。但是那样每次提交记录都要执行一次sysdate,占用了数据库的资源。所以想自己维护一个时间。

另外,能不能给点分给我,我快没分了,江湖救急,好歹我也回答了你一个问题不是,谢谢啦