'********************************************************************
'* Module : clsGPCSJOB:GetTime()
'* Author : HI1\Kevin L Li
'* Function :
'* Date Created : 2005-9-26
'* Date Modified :
'* Maint. Log :
'********************************************************************
'* Input :
'* Output :
'* Process Flow :
'********************************************************************
Public Function GetTime(ByRef Connection As ADODB.Connection) As String
Dim rsTime As New ADODB.Recordset
Dim strSql As String
strSql = "SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual"
rsTime.Open strSql, Connection
''''Modified by HI1/Helen Li on 20040219 for SQL Server to Oracle
'rsTime.Open "select * from OPENQUERY(" & g_cstrLinkedServer & ",'select systime from dual')", objConn
'Set rsTime = objConn.Execute("select systime from dual") 'Helen Y
''''End Modified
GetTime = rsTime.Fields(0).Value
'' If Len(GetTime) = 5 Then
'' GetTime = "0" + GetTime
'' End If
rsTime.Close
End Function
以 上GetTime函数的作用是取得一个数据库当前时间的字符串,而该字符串与系统中date格式设置有关,这样该函数的结果就会受系统影响有不确定性,因 此使用SELECT SYSDATE FROM dual,就可能会出现问题,就是得到的字符串在插入数据库中date类型时格式不符。解决办法是在取得字符串时将它格式化,如下:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual
在 插入数据库date类型时再用TO_DATE('strDatetime','YYYY-MM-DD HH24:MI:SS')函数将其转成date类型,其中只要保证两个格式化字符串'YYYY-MM-DD HH24:MI:SS'一致就可以使date类型和系统不相关了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11411056/viewspace-733345/,如需转载,请注明出处,否则将追究法律责任。