Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Php 选择带有日期的数据库数据_Php_Mysql_Sql_Database - Fatal编程技术网

Php 选择带有日期的数据库数据

Php 选择带有日期的数据库数据,php,mysql,sql,database,Php,Mysql,Sql,Database,我有一个表名事务 +-------+---------------------+--------+ | t_id | date | amount | +-------+---------------------+--------+ | 10 | 2016-04-17 19:24:05 | 1800 | | 12 | 2016-06-11 12:40:13 | 200 | | 17 | 2016-04-13 14:42:04 | 100

我有一个表名事务

+-------+---------------------+--------+
| t_id  | date                | amount |
+-------+---------------------+--------+
|   10  | 2016-04-17 19:24:05 | 1800   |
|   12  | 2016-06-11 12:40:13 | 200    |
|   17  | 2016-04-13 14:42:04 | 100    |
|   19  | 2016-05-14 17:45:43 | 1      |
|   20  | 2016-08-15 19:45:54 | 999    |
|   21  | 2016-01-17 11:46:02 | 1500   |
|   41  | 2016-02-18 17:23:14 | 500    |
|   42  | 2016-07-19 13:26:14 | 500    |
|   43  | 2016-02-18 17:23:15 | 500    |
|   44  | 2016-02-18 17:23:16 | 500    |
|   45  | 2016-02-18 18:23:16 | 500    |
|   46  | 2016-02-18 17:23:16 | 500    |
|   47  | 2015-10-18 14:23:17 | 500    |
|   48  | 2015-11-18 17:23:17 | 500    |
|   49  | 2015-12-18 11:23:18 | 500    |
|   50  | 2015-05-18 11:25:54 | 1000   |
|   51  | 2015-09-18 12:26:22 | 3000   |
|   52  | 2015-05-18 13:48:59 | 10     |
|   53  | 2015-03-18 15:48:59 | 10     |
|   54  | 2015-01-18 17:49:13 | 5000   |
+-------+---------------------+--------+
我想选择带有日期的记录

我用

我还可以在2个日期和我使用的日期之间进行选择

SELECT * FROM transactions WHERE date<'2016-02-18' AND date>'2016-02-01';
从日期为'2016-02-01'的交易中选择*;
但它不起作用。(我使用php Mysql xampp)
你能帮我理解这些概念吗?

你应该在。。。和…

SELECT * FROM transactions WHERE `date` BETWEEN '2016-02-01' AND '2016-02-18';
是mysql数据库吗

如果比使用
日期
功能更有效:

SELECT * FROM transactions WHERE DATE(date)='2016-02-18';

用这个

在查询中使用%等。您将在给定日期内获得所有结果

SELECT * FROM transactions WHERE date like '2016-02-18%';

对于ist查询,您需要使用
DATE()
函数,因为您的列类型是
DATETIME
TIMESTAMP
,因此您可以按以下方式处理它:

SELECT * FROM transactions WHERE DATE(date) = '2016-02-18';
对于第二个查询,您只需将时间添加为:

SELECT * FROM transactions WHERE date > '2016-02-01 00:00:00' AND date < '2016-02-18 23:59:59';
从日期为“2016-02-01 00:00:00”且日期为“2016-02-18 23:59:59”的交易中选择*;

你说的“它不工作”是什么意思?您是否收到错误消息?它是否返回了错误的数据?日期列的类型是什么?timestamp/datetime或string?同样,amount看起来很像字符串:-(为什么OP“试试这个”一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的SO访客。我如何选择当前或上个月的所有交易。因为所有月份都不是30天。所以这对我来说是一个大问题。@JayBlanchard在写的地方你不应该在答案中写“尝试这个”。我有即使是很多拥有300k的用户,他写了“试试这个”和“使用这个”,但没有人可以干涉,所以你为什么这么说。你可以在帖子上发表评论,但如果我的查询是正确的,那么你无权否决。如果你受伤了,我很抱歉。我没有受伤,如果我看到一个300k的用户做同样的事情,我也会做出同样的评论。有解释的答案总是更好的呃。他们不仅要教OP,还要教其他将要阅读答案的人。我的评论不是干涉,而是指导。如何处理它是你的选择。我没有否决你的答案,其他人否决了。我从来没有否决过一个有效的答案。OP为什么要“使用这个”一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。当你进行编辑时,你没有解释OP为什么应该使用
%
类似的
。你只是告诉他们在没有任何上下文的情况下使用它。:)如何选择当前或上月所有交易记录。因为所有的月份都不是30天。所以这对我来说是个大问题。你认为他的专栏是DATETIME专栏吗?OP从未具体说明这一点,即使有人问了这个问题。:)@杰伊·布兰查德你好,先生。。是的,你百分之百正确。但在价值上,我只是看到了24小时制,并猜测了它的日期和时间。。mmaybe DATETIME或timestamp如何选择当前或上月所有事务。因为所有的月份都不是30天。所以这对我来说是个大问题。我如何选择当前或上个月的所有交易。因为所有的月份都不是30天。所以这对我来说是个大问题。对不起,我不知道你想要什么。也许你应该看看mysql文档来解决这个问题:。或者重新表述你的需求。(或者您可能只需要使用“MONTH()”函数?)
SELECT * FROM transactions WHERE DATE(date) = '2016-02-18';
SELECT * FROM transactions WHERE date > '2016-02-01 00:00:00' AND date < '2016-02-18 23:59:59';