В моем проекте я использую Eloquent в качестве слоя БД.И у меня есть большая проблема с объектом datetime преобразования.
Существует 3 сервера:
- SQL Server
- Производство (PHP)
- Локальная разработка
Производствои локальная разработка подключается к SQL Server и отправляет запросы.
Часть запроса, в которой я работаю с datetime:
$builder->where("register.from", '>=', $filter->getDateFrom()->setTime(0, 0, 0))
->getDateFrom()
возвращает \DateTime
php-объект.
И на Linux-машине этот код работает нормально ... Но проблемы начинаются на локальной машине с win 10 и сервером xampp.
SQLSTATE [22007]: [Microsoft] [Драйвер ODBC 17 для SQL Server] [SQL Server] Преобразование типа данных nvarchar в тип данных datetime привело к значению вне допустимого диапазона.
Я сейчас на конечной линии.Кто-нибудь может помочь?
После удаления всех дат из запроса я получил то же сообщение о преобразовании данных, но в контексте 'id' ... У меня была проблема с 'id' как целыми числами в запросе для объединения таблиц ...
SQLSTATE [22018]: [Microsoft] [Драйвер ODBC 17 для SQL Server] [SQL Server] Не удалось выполнить преобразование при преобразовании значения nvarchar 'hladiny.IDENT_HL' в тип данных int.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
На SQL Server есть пользователь с форматом даты по умолчанию: 'dmy' и языком по умолчанию 'čeština', но я много раз пробовал, он работает на 'en_english'.Драйвер sqlsrv предназначен для версии php 7.2 и является поточно-ориентированным для x86 (если я пробовал x64, он не работает)
Также я пытался установить ODBC 13. Те же результаты.