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)之间使用的正确语法的版本