#php #sql-server #laravel #datetime
#php #sql-сервер #laravel #дата и время
Вопрос:
Я подключаюсь к существующей базе данных, используя Laravel 8, SQL Server 2019 и существующие хранимые процедуры. В datetime
различных таблицах хранится множество полей, которые включают дробные секунды ( Y-m-d H:m:s.v
), однако, когда я экспортирую эти данные через Laravel, я не получаю миллисекунд. Даже прогон результатов по dd()
-прежнему не включает миллисекунды.
Из базы данных:
Даже запуск basic select *
для таблиц также не возвращает миллисекунды.
Могу ли я в любом случае преодолеть это, поскольку мне нужна ссылка на полное значение даты и времени.
Обновленная информация
Laravel Version: 8.9.0
Homestead Version: 9.5.1
Vagrant Version: 2.2.9
PHP Version: 7.4.5
MSSQL Version: 2019
Запуск следующего необработанного запроса из базы данных:
$q = WarehouseCredit::select(DB::raw(
InvoiceNumber,
DateModified,
CONVERT(varchar, DateModified, 121) AS DateModified1"
))
ВОЗВРАТ
[
{
"InvoiceNumber": "A00001",
"DateModified": "2020-03-04 09:58:56",
"DateModified1": "2020-03-04 09:58:56.723"
}
],
Я не понимаю, почему единственный способ получить дробные секунды — преобразовать поле в строку. Это не самый предпочтительный метод для меня, поскольку в конечном итоге я буду извлекать информацию с помощью хранимой процедуры, поэтому у меня не будет возможности запускать необработанные запросы.
Я не могу найти никакой информации о других людях, испытывающих эту проблему в той же степени, поэтому я не могу сказать, является ли это проблемой PHP, Laravel, MSSQL, Linux или Homestead, или комбинацией нескольких.
Если кто-нибудь вообще может помочь, это было бы с благодарностью.
Комментарии:
1. Можете ли вы предоставить код хранимой процедуры
2. Извините @MuhammadWaqasAziz Я только что определил, что даже простое выполнение простого
select *
оператора из таблицы все еще сокращает миллисекунды. Так что, похоже, это не связано с хранимой процедурой, как я думал.3. Laravel работает поверх PHP, не так ли? Поддерживает ли класс PHP DateTime миллисекунды?
4. Вы нашли решение по прошествии времени? @Riples
5. @PsychoX Нет, решения нет. Мне кажется странным, что никто никогда не сталкивался с этим. Моим ЕДИНСТВЕННЫМ вариантом было попросить администратора БД добавить дополнительное поле в БД к
cast
полю в правильном формате, чему он был недоволен, но выбора не было. Действительно разочаровывающий результат для меня, поскольку это не должно быть ракетостроением.