Pessoalmente, quase sempre uso funções definidas pelo usuário para isso se estiver lidando com o SQL Server 2005 (ou versão inferior), no entanto, deve-se notar que existem desvantagens específicas no uso de UDFs, especialmente se você for aplicá-las às cláusulas WHERE (veja abaixo e os comentários sobre esta resposta para obter mais detalhes). Se estiver usando o SQL Server 2008 (ou superior) - veja abaixo.
De fato, para a maioria dos bancos de dados criados, eu adiciono esses UDFs logo no início, pois sei que há uma chance de 99% de precisar deles mais cedo ou mais tarde.
Eu crio um para "somente data" e "somente horário" (embora o "somente data" seja de longe o mais usado dos dois).
Aqui estão alguns links para uma variedade de UDFs relacionadas à data:
Essencial SQL Server Data, hora e de data e hora Funções
Obter Data única função
Esse último link mostra nada menos que três maneiras diferentes de obter a data apenas como parte de um campo de data e hora e menciona alguns prós e contras de cada abordagem.
Se você estiver usando um UDF, deve-se observar que você deve evitar o uso do UDF como parte de uma cláusula WHERE em uma consulta, pois isso prejudicará bastante o desempenho da consulta. A principal razão para isso é que o uso de um UDF em uma cláusula WHERE torna essa cláusula não sargável , o que significa que o SQL Server não pode mais usar um índice com essa cláusula para melhorar a velocidade da execução da consulta. Com referência ao meu próprio uso de UDF, usarei frequentemente a coluna de data "bruta" na cláusula WHERE, mas aplicarei o UDF à coluna SELECTed. Dessa maneira, o UDF é aplicado apenas ao conjunto de resultados filtrado e nem a todas as linhas da tabela como parte do filtro.
Obviamente, a melhor abordagem absoluta para isso é usar o SQL Server 2008 (ou superior) e separar suas datas e horas , pois o mecanismo de banco de dados do SQL Server fornece nativamente os componentes individuais de data e hora e pode consultá-los de maneira eficiente. sem a necessidade de um UDF ou outro mecanismo para extrair a parte da data ou hora de um tipo de data e hora composto.