首先这个系统是在自己电脑上做的,数据库也是在自己电脑上,获取的时间是自己电脑的时间,但是一旦BIOS出问题了,电脑出问题了,就很有可能恢复到原出厂时间。所以这样就造成了一个问题,时间就不准确了,所有写入数据库的时间也就错了。所以,我们需要获取数据库的时间,前期,数据库是在别的电脑上,在自己电脑根本看不出来(这可以理解吧)。这里我就介绍一下如何在VB中获取数据库的时间,并且做到矫正本机的时间。
1、获取当前数据库的日期:
<pre name="code" class="php"><pre name="code" class="vb">txtSQL="select convert(VARCHAR(10),GETDATE(),120)" set m=executeSQL(txtSQL,MsgText) text1.text=m.field(0)
2、获取当前数据库的时间:
<pre name="code" class="plain"><pre name="code" class="vb">txtSQL="select convert(VARCHAR(10),GETDATE(),8)" set m=executeSQL(txtSQL,MsgText) text2.text=m.field(0)
这里总结了一下获取数据库服务器时间的一些语句
Oracle:
系统时间比较熟悉是select sysdate from dual时间类型获取;
select to_char(sysdate, 'yyyy-mm-ddhh24:mi:ss') from dual;以字符串形式获取
db2:
SELECT CURRENT TIMESTAMP FROMSYSIBM.SYSDUMMY1获取系统时间
还有
select CURRENT DATE from SYSIBM.SYSDUMMY1;获得日期
select CURRENT TIME from SYSIBM.SYSDUMMY1;获得时间
SQL Server:
使用GETDATE()
SQL Server拥有非常强大的日期函数:
Select CONVERT(varchar(100), GETDATE(), 0):05 16 2008 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08
Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/08
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.08
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-08
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 08
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 08
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2008 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-08
Select CONVERT(varchar(100), GETDATE(), 11): 08/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 080516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2008 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2008-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2008-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/08 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2008-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2008-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2008 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2008
Select CONVERT(varchar(100), GETDATE(), 102): 2008.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2008
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2008
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2008
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2008
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2008
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2008
4、矫正时间(这里多亏了贺朋大神)
首先声明一个日期类型的变量
public SQLtime as Date (SQLtime存放所获得的服务器日期和时间)
然后在点击按钮再判断一下服务器时间和系统时间是否相同
<pre name="code" class="vb">if SQLtime <> now then date=format(SQLtime,"yyyy-mm-dd") time=format(SQLtime,"hh:mm:ss") end if