Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/08/2009, 07:35
Avatar de rgbarbieri
rgbarbieri
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: cadena datetime a smalldatetime

podes convertirlo de la siguiente manera y vas a recibir un recordset con el formato de fecha DD/MM/YYYY

select convert(smalldatetime,convert(varchar(10),ultimafe cha,103),103) from tabla
where campodatetime between '1900-01-01' and '2079-06-06'


Es importante restringir el rango de fechas que se encuentra en el where porque, son los rangos que maneja el tipo SMALLDATETIME, por ejemplo si en la base de datos hay una fecha cargada y esta supera al 2079 y no tuvieramos aplicado el rango de fechas que especifiqué en el where, entonces no va a funcionar y arrojaría el siguiente error:

Server: Msg 296, Level 16, State 3, Line 1
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.


Otra cosa es que en el ejemplo devuelve la fecha en formato DD/MM/YYYY porque utilicé 103, en el siguiente link se muestra la tabla completa.

msdn.microsoft.com/es-es/library/ms182418.aspx

Espero que les sirva
Ruben

Última edición por rgbarbieri; 07/08/2009 a las 08:28