我有一个包含datetime列的表.无论时间如何,我希望返回给定日期的所有记录.或者换句话说,如果我的表只包含以下4条记录,那么如果我限制为2012-12-25,则只返回第2和第3条记录.
2012-12-24 00:00:00
2012-12-25 00:00:00
2012-12-25 06:00:00
2012-12-26 05:00:00
Run Code Online (Sandbox Code Playgroud) 我有下表,大约有 4 亿行。我必须SELECT对该表执行查询,通常涉及列WHERE上的子句Date_create。
关键是我的大多数查询都是全天进行的(不考虑小时和秒)
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| ID_num | bigint(45) | NO | PRI | NULL | |
| Content | varchar(250) | YES | | NULL | |
| User_ID | bigint(24) | NO | MUL | NULL | |
| Location | varchar(70) | YES | | NULL | |
| Date_create | datetime | NO …Run Code Online (Sandbox Code Playgroud) 我有一张活动桌。其中,due dateof event 以datetime格式存储。但是,由于需求的一些变化,现在我们只需date要从due date列中显示(不包括时间)。
事件(表)
id | user_id | description | due_date | is_completed
1 8 My Event1 2016-08-09 19:16:00 0
2 8 My Event2 2016-08-09 19:53:00 0
Run Code Online (Sandbox Code Playgroud)
我想按日期显示所有事件。就像2016-08-09.
所以,我尝试了这个查询。
$upcoming_events = Events::find()->select(['due_date'])->distinct()
->where(['user_id' => Yii::$app->users->getId(),'is_completed'=> 0 ])
->andWhere(['>=','due_date',date("Y-m-d")])
->orderBy(['due_date'=>'ASC'])->limit(5)->all();
Run Code Online (Sandbox Code Playgroud)
但是,现在 2 个日期被选择为2016-08-09 19:16:00& 2016-08-09 19:53:00。因为,日期部分不是从 select 语句中获取的。它显示了 2 次相同的日期。
var_dump($upcoming_events);
[1] => app\Events Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[due_date] => 2016-08-09 19:16:00
) …Run Code Online (Sandbox Code Playgroud)