作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 $start_date
和 $end_date
作为参数传递,以将它们与 MySQL 数据库表中的 created
字段进行比较。我正在使用 yii2
框架。
这是我尝试过的:
$modelStockDetails=StockDetails::find()->where(['BETWEEN', 'created', $start_date, $end_date])->andwhere(['receiving_order_id' =>$modelRecevingOrder->id,'deleted' => 'N'])->all();
当值 $start_date
和 $end_date
与表中的 created
日期不同时,它返回一个空数组。
但是当我传递 $start_date
时它返回一个包含数据的数组,这与表中的 created
日期完全相同。
最佳答案
可能是与输入转换相关的问题尝试使用 str_to_date 和文字 Where(根据您的格式使用正确的日期格式转换,我的示例是“%d-%m-%Y”)
$modelStockDetails=StockDetails::find()
->where(' date(created) between STR_TO_DATE("'. $start_date . '", "%d-%m-%Y" )
AND STR_TO_DATE("' . $end_date . '", "%d-%m-%Y" )' )
->andwhere(['receiving_order_id' =>$modelRecevingOrder->id,'deleted' => 'N'])->all();
或者为了避免在 sql 中使用 var 你可以使用
$modelStockDetails=StockDetails::find()
->where(' date(created) between STR_TO_DATE(:start_date, "%d-%m-%Y" )
AND STR_TO_DATE( :end_date, "%d-%m-%Y" )', [':start_date' => $start_date, ':end_date' => $end_date] )
->andwhere(['receiving_order_id' =>$modelRecevingOrder->id,'deleted' => 'N'])->all();
关于php - yii2中where Between查询怎么写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318434/
我是一名优秀的程序员,十分优秀!