Laravel MySQL в SQL Server

Мы разработали проект на Laravel с Mysql, хотим подключить проект к базе данных SQL Server. Проект не может подключиться к SQL Server - мы получаем следующую ошибку:

SQLSTATE[22007]: [Microsoft][ODBC Driver 11 for SQL Server]
[SQL Server]Conversion failed when converting date and/or time from character string. (SQL: select sum([credit]) as aggregate from [loan_transactions] where [transaction_type] = repayment and [reversed] = 0 and [date] between date_sub(now(),INTERVAL 1 WEEK) and now())
(View: D:\Xampp\htdocs\loanmanager\resources\views\dashboard.blade.php)

Таблица [пользователи] существует в вашей схеме?

WillardSolutions 10.12.2018 17:52

да, теперь я получаю следующую ошибку SQLSTATE [22007]: [Microsoft] [Драйвер ODBC 11 для SQL Server] [SQL Server] Ошибка преобразования при преобразовании даты и / или времени из символьной строки. (SQL: выберите сумму ([кредит]) как агрегат из [кредит_транзакций], где [тип_транзакции] = погашение и [обратный] = 0 и [дата] между date_sub (сейчас (), ИНТЕРВАЛ 1 НЕДЕЛЯ) и сейчас ()) (Просмотр : D: \ Xampp \ htdocs \ creditmanager \ resources \ views \ dashboard.blade.‌ php)

Neo Udaipur 10.12.2018 18:03

Отредактируйте свой вопрос и добавьте ошибку и запрос, вызывающий ошибку.

WillardSolutions 10.12.2018 18:06

похоже, что вы подключились к базе данных, и он попытался запустить оператор SQL - я предполагаю, что оператор SELECT несовместим с SQL Server, такими вещами, как date_sub или now () (я привык использовать getdate ()) могут не распознаваться командами SQL Server.

Phill 10.12.2018 18:17
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
4
768
2

Ответы 2

Похоже, вы пытаетесь выполнить запрос со специфическим синтаксисом MySQL, несовместимым с MSSql. Вместо использования функции date_sub() MySQL попробуйте использовать эквивалент MSSql:

... and [date] between DATEADD(week, -1, GETDATE()) and GETDATE())

Не ответ, просто не могу комментировать. Когда дело доходит до поддержки MySQL и MSSQL, миграции тоже могут быть беспорядочными, не только с FK и индексами, но и с множеством других вещей. Просто совет: если вы используете оператор if для поддержки обоих, это может быть односторонним env('DB_CONNECTION') === 'sqlsrv'

Другие вопросы по теме