Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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数据库表_Mysql - Fatal编程技术网

如何按当前日期过滤MYSQL数据库表

如何按当前日期过滤MYSQL数据库表,mysql,Mysql,我的桌子: id message sent_user_id sent_user_name received_user_id received_user_name table_no message_time status 1 Need a help 6 Saman kumara 11 Kamal Perera 0 2016-12-07 17:28:41 0 2 Need a help

我的桌子:

id message     sent_user_id sent_user_name received_user_id received_user_name table_no message_time        status
 1 Need a help            6 Saman kumara                 11 Kamal Perera              0 2016-12-07 17:28:41      0
 2 Need a help            6 Saman kumara                 10 Nimal Rajapaksha          0 2017-01-05 18:17:35      0
 3 Need a help            6 Saman kumara                 10 Nimal Rajapaksha          0 2017-01-05 18:21:20      0
 4 Need a help            6 Saman kumara                 10 Nimal Rajapaksha          0 2017-01-05 18:22:15      1
我需要选择消息时间等于当前日期的所有行

SELECT * FROM message_info WHERE message_time = CURDATE();
这是我试过的问题。但它不起作用

SELECT * FROM message_info WHERE DATE_FORMAT(message_time, "%y-%m-%d")  = CURDATE();
您希望比较日期,因此必须从表中的datetime中删除时间数据。您可以使用DATE\u格式来完成此操作

如果message_time列上有索引,则应使用此查询:

SELECT * 
FROM message_info 
WHERE message_time 
    BETWEEN DATE_FORMAT(CURDATE(), "%y-%m-%d 00:00:00") AND DATE_FORMAT(CURDATE(), "23-59-59")

当使用函数更改列的值时,不能使用其索引。通过更改搜索算法以查找从x日开始到x日结束之间的日期,您将获得相同的结果,而无需更改搜索值。

不是免费的代码编写服务。您应该尝试自己编写代码。之后,如果你有问题,你可以张贴你已经尝试了一个明确的解释什么是不工作,并提供一个解决方案。我建议你读一个好的问题和答案。另外,请确保使用。您通常不会在这样的表中存储发送的\u user\u name和接收的\u user\u name。我试过了。这是我尝试过的问题。从消息信息中选择*,其中消息时间=CURDATE;但它不起作用。