Mysql 当我只有可用的年份时,如何根据datetime字段查询数据库中的行?
我需要根据年份从表中选择所有行,但是我可以查询的唯一字段是可以读取的Mysql 当我只有可用的年份时,如何根据datetime字段查询数据库中的行?,mysql,yii2,Mysql,Yii2,我需要根据年份从表中选择所有行,但是我可以查询的唯一字段是可以读取的DATETIME字段,例如2020-05-08 14:30:34 我如何返回仅基于年度的条目 $records = MedicalRecord::find() ->where(['dateCreated' => '2020']) ->all(); 您可以使用YEAR()函数,请尝试以下操作: $records = MedicalRecord::find() ->where(['Y
DATETIME
字段,例如2020-05-08 14:30:34
我如何返回仅基于年度的条目
$records = MedicalRecord::find()
->where(['dateCreated' => '2020'])
->all();
您可以使用YEAR()
函数,请尝试以下操作:
$records = MedicalRecord::find()
->where(['YEAR(dateCreated)' => 2020])
->all();
您可以使用YEAR()
函数,请尝试以下操作:
$records = MedicalRecord::find()
->where(['YEAR(dateCreated)' => 2020])
->all();
您可以使用和where()
并与年初和年末日期进行比较
可能值得记住的是,这相当于将日期作为字符串进行比较,但由于排序是YY-mm-dd,因此它是有效的
$records = MedicalRecord::find()
->where(['>=', 'dateCreated', '2020-01-01 00:00:00'])
->andWhere(['<', 'dateCreated', '2021-01-01 00:00:00'])
->all();
$records=MedicalRecord::find()
->其中(['>=','dateCreated','2020-01-01 00:00:00']))
->andWhere(['您可以使用andWhere()
并与年初和年末日期进行比较
可能值得记住的是,这相当于将日期作为字符串进行比较,但由于排序是YY-mm-dd,因此它是有效的
$records = MedicalRecord::find()
->where(['>=', 'dateCreated', '2020-01-01 00:00:00'])
->andWhere(['<', 'dateCreated', '2021-01-01 00:00:00'])
->all();
$records=MedicalRecord::find()
->其中(['>=','dateCreated','2020-01-01 00:00:00']))
->在哪里(['对于MySQL,它将是。此外,您的解决方案可能比接受答案中的解决方案更快,因为它可以使用标准索引。另一个解决方案可能需要为年份设置带有功能键部分的索引。
。对于MySQL,它将是。此外,您的解决方案可能比接受答案中的解决方案更快,因为它可以使用标准索引rd索引。另一个可能需要为年
设置带有功能键部分的索引。