Yii2:如何设置MySQL语言环境

时间:2016-01-11 13:05:46

标签: mysql yii2

在一个模型中,我需要将日期搜索为用德语编写的字符串:

->andFilterWhere(['like', 'DATE_FORMAT(`date`,\'%d. %M %Y\')', $this->date])

在应用过滤器之前,必须使用以下SQL命令设置区域设置:

SET lc_time_names = 'de_DE';

2 个答案:

答案 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();
    }
],

http://www.yiiframework.com/doc-2.0/guide-db-dao.html