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
Mysql 尝试使用BETWEEN条件返回基于日期的行,但未得到结果_Mysql_Phpmyadmin - Fatal编程技术网

Mysql 尝试使用BETWEEN条件返回基于日期的行,但未得到结果

Mysql 尝试使用BETWEEN条件返回基于日期的行,但未得到结果,mysql,phpmyadmin,Mysql,Phpmyadmin,我有一个包含事件列表的数据库,其格式如下: Datef Event Location Discipline 10/01/2012 MG Training Brooklands MG 查询运行正常,我知道数据库中有相关的结果,但在phpmyadmin中运行查询时,我没有收到任何结果(我刚刚被告知“您的SQL查询已成功执行”) 我想知道是否有人知道为什么这不会返回结果 更新: 在引号中加上日期(例如,从事件中选择*,其中纪律在('MG

我有一个包含事件列表的数据库,其格式如下:

Datef Event Location Discipline 10/01/2012 MG Training Brooklands MG 查询运行正常,我知道数据库中有相关的结果,但在phpmyadmin中运行查询时,我没有收到任何结果(我刚刚被告知“您的SQL查询已成功执行”)

我想知道是否有人知道为什么这不会返回结果

更新: 在引号中加上日期(例如,从事件中选择*,其中纪律在('MG')中,日期在2012年1月1日至2012年1月31日之间)有点有效,但有一个bug。
我知道某些日期不起作用。e、 g.从“2012-02-01”和“2012-02-29”之间的“通信”和“日期”中的规程显示无结果的事件中选择*,即使2010-02-01发生了事件。这是中间算法的一个特点,还是我的查询仍然出错?

尝试包装代码strotime()。MySQL和PHP使用不同的格式

SELECT * FROM events WHERE Discipline IN ('COMM') AND Datef BETWEEN '2012-02-01' AND '2012-02-29' 有关其他信息,请参见以下几个链接:


http://www.binarytides.com/blog/parse-and-format-dates-between-php-and-mysql/

尝试包装代码strotime()。MySQL和PHP使用不同的格式

有关其他信息,请参见以下几个链接:


http://www.binarytides.com/blog/parse-and-format-dates-between-php-and-mysql/

您的列Datef的类型错误,应该是datatime

您的列Datef的类型错误,应该是datatime

没有引号或任何将这些值指定为日期的内容,它只需对您编写的整数进行计算即可

换句话说,你要求

 BETWEEN 01/01/2012 AND 31/01/2012
所以你得到1/1=1,然后是1/2012,几乎是0

然后你做31/1=31,然后是31/2012,也几乎是0

所以它变成了

BETWEEN 0 and 0

没有引号或任何将这些值指定为日期的东西,它只需对您编写的整数进行计算

换句话说,你要求

 BETWEEN 01/01/2012 AND 31/01/2012
所以你得到1/1=1,然后是1/2012,几乎是0

然后你做31/1=31,然后是31/2012,也几乎是0

所以它变成了

BETWEEN 0 and 0

Datef字段的类型是什么?如果在“2012-01-01”和“2012-01-31”之间的('MG')和Datef中选择事件中的*,
,会发生什么情况?@jcmeloni这是一个文本(全文?)字段。@General Ok。除非你有一个非常非常令人信服的理由将日期存储为一种非日期或日期时间的格式,否则你应该真正考虑改变类型。如果在字符串周围加上单引号,您将得到一个结果,但不太可能是您想要的结果(基于日期),因为这将是对看起来像日期的字符串的字母数字搜索。@davogotland有效!谢谢。Datef字段的类型是什么?如果从事件中选择“'MG')中的规程,并在“2012-01-01”和“2012-01-31”之间选择Datef,会发生什么情况?@jcmeloni这是一个文本(全文?)字段。@General Ok。除非你有一个非常非常令人信服的理由将日期存储为一种非日期或日期时间的格式,否则你应该真正考虑改变类型。如果在字符串周围加上单引号,您将得到一个结果,但不太可能是您想要的结果(基于日期),因为这将是对看起来像日期的字符串的字母数字搜索。@davogotland有效!谢谢。将其更改为“日期”格式(我相信只有在字段中包含时间时才需要datetime)。查询中仍然没有任何一行datef未列为“0000-00-00”。将其更改为“date”格式(我相信只有在字段中包含时间时才需要datetime)。查询仍然不包含datef未列为“0000-00-00”的任何行。