我有一种感觉,这个问题应该很容易回答,但由于某种原因,我到处搜索并空手而归,即使使用mysql docs中的搜索功能也没有返回" to_date&# 34;功能完全!!! 有人可以解释为什么使用" to_date" on" bdate"这已经是" date"变量?为什么要再次将它转换为日期?实际上是" 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%';
答案 0 :(得分:2)
假设这个问题真的是关于具有to_date()
功能的Oracle或Postgres,这似乎是一个非常糟糕的主意。也许意图更像是:
select s.sname
from student s
where to_char(s.bdate, 'YYYY-MM-DD') like '%13%';
除了使用to_date()
之外,like
比较是假设字符串。在这种情况下,转换为日期对我来说没有意义。
编辑:
我应该添加Oracle explicitly warns来反对这样做:
不要将带有DATE值的TO_DATE函数用于char 论点。返回的DATE值的前两位数可以不同 来自原始字符,取决于fmt或默认日期格式。