gpt4 book ai didi

php - yii2中where Between查询怎么写

转载 作者:行者123 更新时间:2023-11-28 23:25:59 25 4
gpt4 key购买 nike

我将 $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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com