我正在使用VB6作为我的应用程序。我已经使用从SQL查询获得的RecordSet填充了Excel。
一个名为Time_period
的列的值类似于
"2/31/2006"
"12/29/2000"
etc.
我需要将这些输入传递给另一个SQL查询进行处理。我对格式感到困惑,因为Oracle接受类型为“23-Jul-2009”,“02-Jan-1998”等的输入。
你能帮助在VB6中从一种格式转换到另一种格式吗?
答案 0 :(得分:2)
使用格式。
Debug.Print Format$(Now, "dd-mmm-yyyy")
这适用于您的情况。
您可以尝试使用以下格式(ISO标准):
Debug.Pring Format$(Now, "yyyy-MM-dd")
答案 1 :(得分:1)
Dim oracleDate As String Dim excelDate As DateTime
oracleDate = Format$(excelDate , "dd-mmm-yyyy")
答案 2 :(得分:1)
如果从记录集中获取日期,可以将其存储在日期变量中,只需调用以下格式化函数即可获得您喜欢的字符串表示形式:
Format(myDateVar, "dd-mmm-yyyy")
然后,您可以将此值与正确的日期分隔符一起传递给SQL查询。 (如果不使用参数)
您可能还想检查 null 值,因为它们不适用于上述功能。
答案 3 :(得分:1)
以下是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
希望这有帮助。
答案 4 :(得分:0)
通常通过在SQL代码中创建两者之间的JOIN,将一个查询的结果集“传递”到另一个查询。希望列Time_period
中的日期值已经是时间类型;如果不是,他们可以使用SQL转换为一个。即使数据位于不同的数据库(例如Oracle和Excel)中,您也可以使用ACE / Jet(a.k.a. MS Access)创建查询以直接或通过着墨表连接这两者。请详细说明您想要实现的目标。