SQL Server: сравните дату со строкой без начальных нулей - PullRequest
2 голосов
/ 17 ноября 2010

это старая черная дыра преобразования DateTime:

tbl_a.dob (varchar) = "1/1/1980"
tbl_b.dob (datetime) = 01/01/1980 00:00:00

это НЕ работает:

select * 
from tbl_a, tbl_b
where tbl_a.dob = convert(varchar, dob, 101)

потому что стиль 101 добавляет нули лизинга к дате и времени! "01/01/1980"

1 Ответ

5 голосов
/ 17 ноября 2010

Вы должны иметь возможность пойти в обратном направлении, преобразовав varchar в дату и время.

select *
    from tbl_a a
        inner join tbl_b b
            on cast(a.dob as datetime) = b.dob
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...