VB6中的date格式
我正在使用VB6为我的应用程序。 我已经使用从SQL查询获得的RecordSet填充Excel。
一个名为Time_period
列具有类似的值
"2/31/2006" "12/29/2000" etc.
我需要将这些input传递给另一个SQL查询进行处理。 我对这些格式有些困惑,因为Oracle接受“23-Jul-2009”,“02-Jan-1998”等types的input。
你能帮助在VB6中从一种格式转换到另一种格式吗?
使用格式。
Debug.Print Format$(Now, "dd-mmm-yyyy")
这将在你的情况下工作。
您可以尝试使用以下格式(ISO标准):
Debug.Pring Format$(Now, "yyyy-MM-dd")
Dim oracleDate As String Dim excelDate As DateTime
oracleDate = Format$(excelDate , "dd-mmm-yyyy")
如果您从logging集中获取date,则可以将其存储在datevariables中,只需调用以下格式化函数即可获取您喜欢的string表示forms:
Format(myDateVar, "dd-mmm-yyyy")
然后,可以将此值与适当的date分隔符一起传递给SQL查询。 (如果不使用参数)
你可能也想检查空值,因为它们不能用上面的函数。
这里是Excel VBA的代码片段,应该在VB6中进行一些调整。
Sub temp() Dim lConn, lRs, sSQL As String Set lConn = CreateObject("ADODB.Connection") Set lRs = CreateObject("ADODB.Recordset") lConn.Open "DSN=yourdns; UID=youruid; PWD=yourpwd;" Dim oWS As Worksheet Set oWS = Worksheets(1) sSQL = " SELECT * FROM Product WHERE Last_Upd_Date > to_date('" & oWS.Range("A1").Value & "', 'MM-DDD-YYYY') " lRs.Open sSQL, lConn Debug.Print lRs.EOF lRs.Close lConn.Close End Sub
希望这可以帮助。
通常,通过在SQL代码中创build一个JOIN,可以将一个查询的结果集“传递”给另一个查询。 希望列Time_period
中的date值已经是一个时间types; 如果不是,则可以使用SQL将其转换为一个。 即使数据位于不同的数据库(例如Oracle和Excel)中,也可以使用ACE / Jet(又名MS Access)创build一个查询来join这两个数据库,直接或通过一张着墨表。 请详细说明您要实现的目标。