Формат даты в VB6 - PullRequest
0 голосов
/ 22 мая 2009

Я использую VB6 для своего приложения. Я заполнил Excel набором записей, полученным из запроса SQL.

Один столбец с именем Time_period имеет значения типа

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

Мне нужно передать эти входные данные другому SQL-запросу для обработки. Меня немного смущают форматы, поскольку Oracle принимает входные данные типа "23-Jul-2009", "02-Jan-1998" и т. Д.

Можете ли вы помочь конвертировать из одного формата в другой в VB6?

Ответы [ 5 ]

2 голосов
/ 22 мая 2009

Использовать формат.

Debug.Print Format$(Now, "dd-mmm-yyyy")

Это будет работать в вашем случае.

Вы можете попробовать использовать следующий формат (стандарт ISO):

Debug.Pring Format$(Now, "yyyy-MM-dd")
1 голос
/ 22 мая 2009

Вот фрагмент кода из 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

Надеюсь, это поможет.

1 голос
/ 22 мая 2009

Если вы получаете свою дату из набора записей, вы можете сохранить ее в переменной даты и просто вызвать следующую функцию форматирования, чтобы получить строковое представление, которое вам нравится:

Format(myDateVar, "dd-mmm-yyyy")

Затем вы можете передать это значение в ваш SQL-запрос вместе с правильными разделителями даты. (если не используются параметры)

Возможно, вы также захотите проверить значения null , поскольку они не будут работать с вышеуказанной функцией.

1 голос
/ 22 мая 2009

тусклый oracleDate As String Dim excelDate As DateTime

oracleDate = Format$(excelDate , "dd-mmm-yyyy")
0 голосов
/ 22 мая 2009

Обычно «передают» набор результатов одного запроса другому, создавая JOIN между двумя в коде SQL. Надеемся, что значения даты в столбце Time_period уже имеют временный тип; если нет, их можно привести к одному с помощью SQL. Даже если данные находятся в другой базе данных (например, Oracle и Excel), вы можете использовать ACE / Jet (например, MS Access), чтобы создать запрос для объединения двух, напрямую или через таблицу с чернилами. Подробнее о том, чего вы пытаетесь достичь, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...