Объединение переменных в двух разных форматах
У меня проблема с тем, что у меня есть атрибут года рождения в таблице X (формат: гггг), а также атрибут даты рождения в таблице Y (другой формат: дд-мм-гггг).
Оба они являются атрибутами типа varchar(). Я хочу объединить эти таблицы по этим атрибутам. Например, я хочу выбрать имена всех людей, родившихся в том же году. Как я могу это сделать?
2 ответа
Решение
(Обновлено) Если предположить, что атрибут даты рождения последовательно содержит последние четыре символа года, попробуйте:
select...
from X
join Y on X.year_of_birth = substr(Y.date_of_birth, length(Y.date_of_birth)-3,4)
SQLFiddle здесь.
Попробуйте использовать DATE_FORMAT()
JOIN table2 ON DATE_FORMAT(table1.bday, "%Y") = DATE_FORMAT(table2.bday, "%Y")