使用Laravel将错误的本地日期格式保存到SQL Server

时间:2019-05-29 09:14:50

标签: sql-server laravel date laravel-5

我们在Laravel中的代码收到Y-M-D格式的日期,并尝试将其保存到SQL Server数据库中。

代码通过许多表的API接收这些日期,因此我们无法在任何地方更改此功能。

SQL Server语言是意大利语,我们的代码可以使用Y-D-M日期。

是否可以为数据库连接配置中使用的所有区域或区域设置一次指定日期格式? 通过语句设置语言无效。

我们的代码是这样的:

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

2 个答案:

答案 0 :(得分:0)

您可以使用LARAVEL Carbon Date库将日期格式转换为意大利语。

像下面这样:

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

这是Carbon库语言环境示例:https://carbon.nesbot.com/docs/#api-localization

答案 1 :(得分:0)

在SQL Server上编写时遇到相同的问题。 它严格取决于数据库中设置的语言:https://database.guide/how-to-set-the-current-language-in-sql-server-tsql/

如果问题仍然存在,则必须检查与数据库交互的用户并检查配置,如果它与管理员用户不同,请执行以下命令:

export function getUrlFromBackgroundImage(backgroundImage: string): string | null {
  if (!backgroundImage) return null;
  const match = backgroundImage.match(/url\("(.*)"\)/);
  if (match) {
    return match[1];
  }
  return null;
}

然后:

ALTER LOGIN your_login WITH DEFAULT_LANGUAGE = us_english

我希望它能起作用