VB6中的日期格式

时间:2009-05-22 09:39:42

标签: sql excel datetime vb6

我正在使用VB6作为我的应用程序。我已经使用从SQL查询获得的RecordSet填充了Excel。

一个名为Time_period的列的值类似于

"2/31/2006"
"12/29/2000"
etc.

我需要将这些输入传递给另一个SQL查询进行处理。我对格式感到困惑,因为Oracle接受类型为“23-Jul-2009”,“02-Jan-1998”等的输入。

你能帮助在VB6中从一种格式转换到另一种格式吗?

5 个答案:

答案 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)创建查询以直接或通过着墨表连接这两者。请详细说明您想要实现的目标。