Как исправить проблему с переменной даты и времени в операторе выбора SQL Server в EXCEL VBA - PullRequest
0 голосов
/ 26 апреля 2019
Dim start_date As Date
start_date = #4/25/2019#
sqll = conn.Execute("SELECT sessionid from BPASession where startdatetime = " & start_date & " ")

Над кодом работает нормально

Ниже код также работает нормально при передаче статической даты и времени на запрос

sqll = conn.Execute("SELECT sessionid from BPASession where startdatetime = '2019-04-24 13:06:09.66' ")

Ниже кода выдает ошибку

 Dim start_date As Date
 start_date = "4/25/2019 5:6:7"
 start_date = Format(start_date, "yyyy-mm-dd hh:mm:ss")

sqll = conn.Execute("SELECT sessionid from BPASession where startdatetime = " & start_date & " ")

Значения в базе данных SQL Server представлены в следующем формате -

2019-04-25 09:54:04.347

Я пишу код в редакторе Excel vba и подключаюсь к SQL Server.

1 Ответ

1 голос
/ 26 апреля 2019

Попробуйте это:

 Dim start_date As Date
 start_date = "4/25/2019 5:6:7"

 sqll = conn.Execute("SELECT sessionid from BPASession where startdatetime = '" & _
                     Format(start_date, "yyyy-mm-dd hh:mm:ss") & "'")

Вот ваша проблема:

Dim start_date As Date, sDate As String

start_date = "4/25/2019 5:6:7"

Debug.Print start_date        '>> 4/25/2019 5:06:07 AM

start_date = Format(start_date, "yyyy-mm-dd hh:mm:ss") '<< assign to Date

Debug.Print start_date        '>> 4/25/2019 5:06:07 AM  (OOPS)

sDate = Format(start_date, "yyyy-mm-dd hh:mm:ss")      '<< assign to String

Debug.Print sDate             '>> 2019-04-25 05:06:07   (OK)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...