Como o SQL Server decide o formato da conversão implícita de datetime?

<code>declare @str_datetime varchar(50)
set @str_datetime='30-04-2012 19:01:45' -- 30th April 2012
declare @dt_datetime datetime
select @dt_datetime=@str_datetime
</code>

Isso está dando o seguinte erro:

Msg 242, nível 16, estado 3, linha 4
A conversão de um tipo de dados varchar em um tipo de dados datetime resultou em um valor fora do intervalo.

Minha pergunta é como o SQL Server decide qual formato usar para conversão de datetime implícita?

questionAnswers(3)

yourAnswerToTheQuestion