Mysql 在SQL查询中将dd/mm/yyyy转换为日期时间

Mysql 在SQL查询中将dd/mm/yyyy转换为日期时间,mysql,sql,Mysql,Sql,我当前正在尝试将dd/mm/yyyy中的日期转换为查询中的DATETIME。以下是我现在拥有的: SELECT * from TABLE WHERE start BETWEEN convert(datetime, '10/20/2015', 101) and convert(datetime, '11/07/2015', 101); 当我在我的sql数据库中运行它时,什么都没有发生。我没有错误,也没有结果。这是一种有效的方法吗 我以前见过这个: SELECT convert(datetime,

我当前正在尝试将
dd/mm/yyyy
中的日期转换为查询中的
DATETIME
。以下是我现在拥有的:

SELECT * from TABLE WHERE start BETWEEN convert(datetime, '10/20/2015', 101) and convert(datetime, '11/07/2015', 101);
当我在我的sql数据库中运行它时,什么都没有发生。我没有错误,也没有结果。这是一种有效的方法吗

我以前见过这个:

SELECT convert(datetime, '10/20/2015', 101);

我可以将其设置为一个变量并将其添加到我的查询中吗?

您的转换不会生效,因为您以相同的格式转换了
101
,这将得到相同的结果。请参见此处的转换格式:

根据您的查询,您不需要包括小时、分钟、秒和毫秒,因为您只需要使用
之间比较两个日期,所以您只能使用
日期
数据类型

    BETWEEN convert(date, '10/20/2015') and convert(date, '11/07/2015');
如果要将日期格式化为
101
格式,则需要将其转换为
CHAR
,类似于:

    SELECT CONVERT(char,'10/20/2015', 101)

    result: 10/20/2015                    

尝试转换
start
,使其格式与您的筛选条件完全相同


从转换(日期时间,'10/20/2015',101)和转换(日期时间,'11/07/2015',101)之间转换(日期时间,开始,101)的表格中选择*

您是否看到了谚语中的建议:“为了在使用日期或时间值时获得最佳效果,请使用CAST()将值显式转换为所需的数据类型。示例:如果将DATETIME与两个日期值进行比较,请将日期值转换为DATETIME值。如果在与日期的比较中使用字符串常量(如“2001-1-1”),请将字符串转换为日期。“?您总是删除问题lol?如果
start
是日期时间怎么办?即使
start
DATETIME
,也没有问题。您不需要将其格式设置为
101
,因为您将其转换为
datetime
,如果您想将start格式设置为
101
,则需要将其转换为
CHAR
而不是datetime。我得到:查看与您的MySQL服务器版本对应的手册,以了解在
“10/20/2015”)附近使用的正确语法并进行转换(日期:2015年7月11日)限制0,30'在第1行
我没有将限制部分放入我的查询中。@user081608您是否在
'10/20/2015'
中添加了两个引号,就像在您的评论中一样?@user081608,仅限单引号。
'10/20/2015'
,在10点之前删除多余的单引号。当我运行它时,请检查与您的MySQL服务器对应的手册第1行的转换(日期时间,'10/20/2015',101)和转换(日期时间,'101)之间使用的正确语法的版本