Объединение переменных в двух разных форматах

У меня проблема с тем, что у меня есть атрибут года рождения в таблице 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")
Другие вопросы по тегам