Hola Cubino:
Creo que no has entendido muy bien el concepto de campo datetime y el manejo de fechas. El tipo de dato DATETIME almacena LA FECHA Y LA HORA, es decir que nunca podrás tener un campo donde se almacene sólo la hora.
La versión 2008 de SQL Server maneja los tipos de campo DATE y TIME por separado, para poder almacenar sólo la fecha o sólo la hora. sin embargo SQL Server 2005 sólo maneja los tipos de fecha datetime y smalldatetime, sería conveniente que nos comentaras que versión-edición de SQL Server estás manejando.
Al margen de lo que comenta Libras, creo que también deberías darle un vistazo a la función CONVERT, ya que esta te permite formatear una fecha,
CAST y CONVERT (Transact-SQL)
En específico, debes checar el parámetro de
style, el 108 por ejemplo te permite formatear una fecha a formato de hora (hh:mi:ss):
Código SQL:
Ver originalSELECT
getdate() fecha_hora,
CONVERT(VARCHAR, getdate(), 108) hora
/*
fecha_hora hora
----------------------- ------------------------------
2011-09-21 09:11:55.630 09:11:55
*
/
Ahora veamos qué pasa si intentas almacenar una hora en un campo datetime:
Código SQL:
Ver originalSELECT CONVERT(datetime, '09:11:55', 108)
/*
-----------------------
1900-01-01 09:11:55.000
*/
observa que al convertir una hora a datetime le asigna por defecto un DIA
(1900-01-01), que creo que es lo que comentas al final, esto se debe a lo que comenté al principio, y es que un campo datetime
NUNCA PODRÁ ALMACENAR SÓLO LA HORA.
Dale un vistazo y espero tus comentarios.
Saludos
Leo.
Saludos
Leo.