пиодбк.Ошибка программирования:42000

#python #sql #sql-server

Вопрос:

Я создаю веб-приложение на python dash и получаю эту ошибку,я все еще новичок в отделе баз данных, поэтому я немного застрял.Можете ли вы дать какие-либо намеки?

пиодбк.Ошибка программирования: (‘42000’, «[42000] [Microsoft][Драйвер SQL Server ODBC][SQL Server]Неверный синтаксис рядом с ключевым словом «МЕЖДУ». (156) (SQLExecTirectW); [42000] [Microsoft][Драйвер SQL Server ODBC][SQL Server]не удалось подготовить (- ы). (8180)»)

Это мой вопрос:

 def build_db_query_app7():
db_query_string = """SELECT NotificationLog.ID as 'ID',
                        DAY(Timestamp) as 'DAY',
                        MONTH(Timestamp) as 'MONTH',
                        NotificationLog.Duration,
                        DATEPART(WEEK, NotificationLog.Timestamp)-1 as 'Week Number'
                        FROM NotificationLog
                            BETWEEN ? AND ?"""
return db_query_string
 

Обратная связь (последний последний вызов): Файл «C:Usersdenis.akvicDesktopflaskappsapp7.py», строка 267, в записях fetch_the_downtime = mssql_conn.execute_query(строка запроса, параметры, str(база данных)) Файл «C:Usersdenis.akvicDesktopflaskmssql_conn.py», строка 63, в курсоре execute_query.выполнить(строка запроса, параметры) pyodbc.Ошибка программирования: (‘42000’, «[42000] [Microsoft][Драйвер ODBC SQL Server][SQL Server]Неправильный синтаксис рядом с ключевым словом «МЕЖДУ». (156) (SQLExecDirectW); [42000] [Microsoft][Драйвер ODBC SQL Server][SQL Server]Не удалось подготовить инструкции. (8180)»)

Комментарии:

1. Где ты WHERE ? В приведенном выше примере вы пытаетесь создать псевдоним своего объекта NotificationLog с помощью зарезервированного ключевого BETWEEN слова . Голосование закрыть как опечатку.

2. ... FROM NotificationLog WHERE some_column BETWEEN ...

3. На этот вопрос дан ответ в комментариях выше, но в качестве общего совета я бы рекомендовал сначала написать ваши запросы и протестировать их с помощью клиента базы данных. Только после подтверждения того, что это работает, сделайте константы переменными.

4. ну,когда я запускаю этот запрос в своей Microsoft SQL Server Management Studio 18, он дает мне правильный вывод, теперь я попытаюсь указать, ГДЕ в новом запросе