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这两个数据库,直接或通过一张着墨表。 请详细说明您要实现的目标。