按年匹配日期

时间:2017-03-27 02:24:31

标签: mysql date yii2

我在表格中有一个日期列,我以Y-m-d格式存储日期。我想创建一个find(),例如,那个年份的年份是2016年。就像它不适用于约会。 我发现在纯mysql中我可以做到

select * from your_table where year(date) = 2016

但我怎么能在Yii2上做到这一点?是否有本地方式或我需要进行自定义查询?

P.S。我正在研究Yii2

4 个答案:

答案 0 :(得分:0)

试试这个

select * from your_table where YEAR(STR_TO_DATE(date_column, "%Y-%m-%d")) = 2016

或者

 select * from your_table where EXTRACT(YEAR FROM date_column) = 2016

答案 1 :(得分:0)

试试这个,

//Using model/Active Record
TableName::find()->where('year(date_column) =:date_column' , [':date_column' => '2016'])->all();

//Using Active Query
Yii::$app->db->createCommand('select * from table_name where year(date_column) = 2016')->queryAll();

更多示例,您可以阅读此http://www.yiiframework.com/doc-2.0/guide-index.html

答案 2 :(得分:0)

您可以使用有效记录:

TableName::find()->where(['YEAR(date)' => 2016])->all();

答案 3 :(得分:0)

你应该把'YEAR(date)'换成这样的条件:

TableName :: find() - > where([new yii \ db \ Expression('YEAR(date)')=> 2016]) - > all();

http://www.yiiframework.com/doc-2.0/yii-db-expression.html#$expression-detail