信息管理系统怎样获取当前日期时间

    在进行机房收费系统合作开发的过程中,负责编写U层的H提出了一个问题,我们在进行数据库记录插入的时候,那个日期和时间字段的值是从从client程序获取还是从DBMS的server上获取?说实话,在做牛腩新闻公布系统之前,我是没想过从数据库系统里获取当前时间的,这又让我增长了见识。后来在交流的过程中。有了解到还能够获取网络时间。那么今天就来先对这三种获取当前日期时间的方法进行一下总结。

    首先是从client程序获取当前时间,这个不难,相信大家都做过这件事情。当然不同的编程语言之间也许会有差异。但总的来说都是一样的,通常都是调用系统函数来获取的。

以下我就以C#语言为例,举个样例:

信息管理系统怎样获取当前日期时间

    其次是从DBMS获取当前时间。这个更简单。我们以SQL Server 2008为例进行简单举例:

信息管理系统怎样获取当前日期时间

    上面获取的是日期和时间在一起哦datetime类型,假设你仅仅想使用日期或者时间,就要使用convert函数了。

举比例如以下:

信息管理系统怎样获取当前日期时间

    当然格式转换的形式还有非常多。具体的能够參考以下的博客:

                 http://blog.csdn.net/jimlong/article/details/7346970

    最后我们来说怎样从网络上获取当前日期时间,这个笔者并不会写获取网络时间的函数,因此在网上到处找啊,好不easy找到一个C#版的,终于由于URL链接无法訪问,没能实现获取网络时间的夙愿。后来在搜索结果中看到龙哥的博客《多方法获取网络时间》(博客地址为:http://blog.csdn.net/xiaoxian8023/article/details/7250385),顿时认为救星来了,于是细致阅读了博客,并接着调试找来的代码。发现还是不行。

后来索性挨着试吧,没想到第一种方法就成功了。

大家对C#代码获取网络时间感兴趣的能够到龙哥的博客里去看。博客里的第三种方法我没有执行出来。有兴趣的能够自己试试。

    接着我把自己的电脑的时间也一并获取了,例如以下图所看到的:

信息管理系统怎样获取当前日期时间

    大家能够发现笔者的电脑时间显然是比网络时间慢了近3分钟,因此我们在做系统的时候,尤其是金融系统,对于向数据库写入时间的时候,应该谨慎,不能一味的从client获取时间信息。当然数据库server也不行,万一server的时间也不准呢?或许你会说。获取网络时间存在网络延时的问题。的确有道理,但是网络延时基本都是在毫秒级别的。相比較而言还是比較靠谱的。但是这是在网络通畅的情况下,万一断网了呢,岂不是非常麻烦?因此採用一个折中的办法,定期校对本地时间,实时与网络同步。