我想连接两个分别称为c和d的表。
所以我写了以下内容:
select * from c
join d
on c.date=d.date;
但由于它们的日期格式不同,所以不起作用。C中的日期格式为1994-01。另一个是1994年1月1日。
我尝试了以下方法来统一这两个表的日期格式:
SELECT STR_TO_DATE('1 January 1994', %M %Y') AS Date from d;
SELECT DATE_FORMAT(NOW(), '%m.%Y') from d;
我该怎么办?
select * from c
join d
on c.date = DATE_FORMAT(str_to_date(d.date,'%d/%m/%Y'), '%Y-%m');
日期的加入似乎有问题如果我们将c.date转换为1994年1月1日,那么带有d的联接将仅在同一日期,即1994年1日根据使用情况,更好的方法是将d.date转换为yyyy-mm格式,您将有一个基于月份的联接。