为什么我的MySQL查询没有返回任何结果,尽管我可以在数据库中找到它们?
我要搜索Current,这意味着他们的截止日期是d005部门的01/01/9999员工编号 我尝试使用以下查询:为什么我的MySQL查询没有返回任何结果,尽管我可以在数据库中找到它们?,mysql,Mysql,我要搜索Current,这意味着他们的截止日期是d005部门的01/01/9999员工编号 我尝试使用以下查询: select emp_no from current_dept_emp where dept_no = 'd005' and date_format(to_date,'%d/%m/%y') = '01/01/9999'; 它返回一个空结果 然后,我想也许9999年1月1日不是一个日期,我可以将它视为一个字符串,我使用通配符作为字符串,而不是日期,如下所示: select emp
select emp_no
from current_dept_emp
where dept_no = 'd005' and date_format(to_date,'%d/%m/%y') = '01/01/9999';
它返回一个空结果
然后,我想也许9999年1月1日不是一个日期,我可以将它视为一个字符串,我使用通配符作为字符串,而不是日期,如下所示:
select emp_no
from current_dept_emp
where dept_no = 'd005' and to_date like '%9999';
还是一无所获
但表中的部分看起来像:
我的代码出了什么问题?您可能想将“%d/%m/%Y”与大写字母Y一起使用什么是“截止日期”列的数据类型?我们需要知道数据类型是VARCHAR还是DATE或DATETIME。这很重要。如果是DATETIME,那么我们可以执行WHERE to_date>'9999-01-01'和to_date<'9999-01-02'以提高性能,对于谓词中引用的列,我们通常希望避免将它们包装在函数中,而是针对裸列编写谓词。e、 g.如果to_date是日期数据类型,我们可以在何处执行to_date='9999-01-01'