Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-Date()在WHERE子句中的工作似乎很奇怪_Mysql - Fatal编程技术网

Mysql-Date()在WHERE子句中的工作似乎很奇怪

Mysql-Date()在WHERE子句中的工作似乎很奇怪,mysql,Mysql,我有一个MySQL表 | id | user_id | steps_date | steps | target | created_at | |----|---------|------------|-------|--------|---------------------| | 1 | 3 | 2017-01-07 | 3000 | 6000 | 2017-01-07 20:45:33 | | 2 | 3 | 2017-01-09 | 25

我有一个
MySQL

| id | user_id | steps_date | steps | target | created_at          |
|----|---------|------------|-------|--------|---------------------|
| 1  | 3       | 2017-01-07 | 3000  | 6000   | 2017-01-07 20:45:33 |
| 2  | 3       | 2017-01-09 | 2545  | 6000   | 2017-01-08 22:15:47 |
| 3  | 3       | 2017-01-10 | 5687  | 6000   | 2017-01-08 21:11:22 |
steps\u date
列的数据类型为
date
created\u at
的数据类型为
timestamp

而且,我正在启动一个查询,以获取
steps\u date>=2017-01-07
steps\u date='2017-01-07'的记录

和日期(步骤和日期)在

SELECT * FROM user_steps_data WHERE user_id = 3 and steps_date between '2017-01-07' AND '2017-01-09';

SELECT * FROM user_steps_data WHERE user_id = 3 and steps_date between '2017-01-07' AND '2017-01-09';
尝试使用MySQL
介于
条件之间。它用于检索
选择
插入
更新
删除
语句中某个范围内的值

SELECT * FROM order_details WHERE order_date BETWEEN CAST('2014-02-01' AS DATE) AND CAST('2014-02-28' AS DATE);
尝试使用MySQL
介于
条件之间。它用于检索
选择
插入
更新
删除
语句中某个范围内的值

SELECT * FROM order_details WHERE order_date BETWEEN CAST('2014-02-01' AS DATE) AND CAST('2014-02-28' AS DATE);

DATE(步骤\日期)哎呀!!打字错误同样,它仍然只返回步骤日期
2017-01-09
,而不是
2017-01-07
。为什么?用于这种查询,它将避免这种错误<代码>步骤日期在'2017-01-07'和'2017-01-09'之间
只需使用
步骤日期>='2017-01-07'和步骤日期在从用户步骤数据中选择*之间使用,其中用户id=3,日期在'2017-01-07'和'2017-01-09'之间<代码>日期(步骤\日期)哦!!打字错误同样,它仍然只返回步骤日期
2017-01-09
,而不是
2017-01-07
。为什么?用于这种查询,它将避免这种错误<代码>步骤日期在'2017-01-07'和'2017-01-09'之间
只需使用
步骤日期>='2017-01-07'和步骤日期在从用户步骤数据中选择*之间使用,其中用户id=3,日期在'2017-01-07'和'2017-01-09'之间;这里的重要修复是不需要强制转换,因为字段已经是
日期
。强制转换将阻止MySQL使用任何底层索引这里的重要修复是不需要强制转换,因为该字段已经是
日期
。强制转换将阻止MySQL使用任何底层索引