我有一种感觉,这个问题应该很容易回答,但由于某种原因,我到处搜索,空手而归,甚至使用mysql文档中的搜索功能根本没有返回“to_date”函数!!!!
有人能解释为什么在已经是“日期”变量的“bdate”上使用“to_date”吗?为什么又把它转换成日期?实际上,对“截止日期”的解释是值得赞赏的,因为搜索文档没有产生任何有用的东西?
在一些演讲幻灯片中,教授举了一个例子:
mysql> create table student
(SID DECIMAL(7) primary key not null,
SNAME VARCHAR (20), MAJOR CHAR(4), YEAR DEC(1),
BDATE DATE);
然后他用以下方法查询:
select s.sname
from student s
where to_date(s.bdate) like '%13%';
最佳答案
假设这个问题是关于oracle或postgres的,它们有一个to_date()
函数,这看起来是一个非常糟糕的主意。或许其目的更像是:
select s.sname
from student s
where to_char(s.bdate, 'YYYY-MM-DD') like '%13%';
除了使用
to_date()
之外,like
比较是假设字符串的。在这种情况下(对我来说)转换为日期是没有意义的。编辑:
我应该补充一点,反对这样做:
不要将to_date函数与字符的日期值一起使用
争论。返回日期值的前两位数字可以不同
从原始字符,取决于fmt或默认日期格式。