在一个模型中,我需要将日期搜索为用德语编写的字符串:
->andFilterWhere(['like', 'DATE_FORMAT(`date`,\'%d. %M %Y\')', $this->date])
在应用过滤器之前,必须使用以下SQL命令设置区域设置:
SET lc_time_names = 'de_DE';
答案 0 :(得分:1)
解决方案很简单:
Yii::$app->db->createCommand("SET lc_time_names = 'de_DE';")->execute();
可以测试命令:
$connection = Yii::$app->getDb();
$command = $connection->createCommand("SET lc_time_names = 'de_DE';");
$result = $command->execute();
var_dump($result);
$command = $connection->createCommand('SELECT @@lc_time_names;');
$result = $command->queryAll();
var_dump($result);
exit;
更多信息:
答案 1 :(得分:0)
尝试:
'db' => [
// ...
'on afterOpen' => function($event) {
// $event->sender refers to the DB connection
$event->sender->createCommand("SET lc_time_names = 'de_DE';")->execute();
}
],