Неверное сохранение локального формата даты в SQL Server с помощью Laravel - PullRequest
0 голосов
/ 29 мая 2019

Наш код в Laravel получает дату в формате YMD и пытается сохранить ее в базе данных SQL Server.

Код получает эти даты через API для многих таблиц, и мы не можем изменить эту функцию везде.

Язык SQL Server - итальянский, и наш код в порядке с датой YDM.

Есть ли способ указать формат даты один раз для всех или локаль, используемую в конфигурации соединения с базой данных?Установка языка с помощью оператора не работает.

Наш код выглядит примерно так:

DB::statement('SET LANGUAGE us_english');
DB::table('tablename')->insert($saveData);

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

У меня была такая же проблема при записи на SQL Server. Это строго зависит от языка, установленного в базе данных: https://database.guide/how-to-set-the-current-language-in-sql-server-tsql/

Если проблема сохраняется, необходимо проверить пользователя, с которым взаимодействует база данных, и проверить конфигурацию, если она отличается от пользователя-администратора, выполнить эту команду:

ALTER LOGIN your_login WITH DEFAULT_LANGUAGE = us_english

А потом:

Carbon::now()->toDateTimeString();

Я надеюсь, что это будет работать

0 голосов
/ 29 мая 2019

Вы можете конвертировать формат даты в итальянский, используя библиотеку LARAVEL Carbon Date.

Как показано ниже:

$date = carbon::now()->locale($yourLocale);

Вот пример локали библиотеки Carbon: https://carbon.nesbot.com/docs/#api-localization

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...