Diferença entre datetime e datetime2

DATETIME é uma estrutura composta por dois números inteiros de 32 bits, um sendo o número de dias desde 1900-01-01 e o outro o número de marcações do relógio desde a meia-noite (1 marca = 1/300 de segundo). Pode aceitar anos de 1753 a 9999. Várias conversões implícitas tornam sintaticamente legal fazer aritmética nos valores DATETIME (d + 1 significa a mesma hora amanhã).

DATETIME2 lida com datas de 0001-01-01 a 9999-121231 e suporta precisão de até 100 nanossegundos. Tem um tamanho de 6 a 8 bytes, dependendo da precisão da declaração da parte do tempo. Não gosta de conversões implícitas, você deve usar DATEADD / DATEDIFF para manipulá-lo.

DATETIME2 é mais compatível com os padrões SQL e é o formato preferido, a menos que haja algum requisito para compatibilidade com versões anteriores.