Tipo fecha y tipo caracter se tratan igual ?

07/05/2005 - 13:25 por Luis Gonzalez | Informe spam
Hola,

De otros hilos vi que recomendaban convert(varchar(10),@fecha,112) para
truncar la hora de una fecha (smalldatetime).

Pero yo veo que lo que hace es convertirlo a una cadena de caracteres y me
da la duda de si es que SQL server trata un valor fecha y un valor tipo
caracter como lo mismo ???

No deberia haber problema si yo defino ?:

declare @fecha smalldatetime

y luego hago:

set @fecha=convert(varchar(10),@parametrofecha,112)

para un select asi:

select * from tabla where tabla.fecha>=@fecha

Preguntas similare

Leer las respuestas

#1 Luis Gonzalez
07/05/2005 - 14:07 | Informe spam
Ejemplo para ser mas claro, este procedimiento para sacar los movimientos de
un cliente en un rango de fechas se supone que deba funcionar correctamente?
considerando que pudiera ser llamado con parametros smalldatetime que
incluyan la hora ?

create proc misp_movimientos (@cliente char(10),@fecha1 smalldatetime,
@fecha2 smalldatetime)
as
set nocount on
/*para que ignore la hora pues puede venir incluida en cualquiera de los
parametros*/
set @FECHA1=convert(varchar(10),@FECHA1, 112)
set @FECHA2=convert(varchar(10),@FECHA2 + 1,112)
SELECT * FROM MOVCLI WHERE CLIENTE=@CLIENTE and FECHA>=@FECHA1 and
FECHA<@FECHA2



"Luis Gonzalez" wrote in message
news:
Hola,

De otros hilos vi que recomendaban convert(varchar(10),@fecha,112) para
truncar la hora de una fecha (smalldatetime).

Pero yo veo que lo que hace es convertirlo a una cadena de caracteres y me
da la duda de si es que SQL server trata un valor fecha y un valor tipo
caracter como lo mismo ???

No deberia haber problema si yo defino ?:

declare @fecha smalldatetime

y luego hago:

set @fecha=convert(varchar(10),@parametrofecha,112)

para un select asi:

select * from tabla where tabla.fecha>=@fecha










Respuesta Responder a este mensaje
#2 Maxi
07/05/2005 - 14:56 | Informe spam
Hola, claro que son cosas distintas si solo le pasas la fecha sin la hora
sql la tomara asi: fecha 00:00:00.

De todas maneras yo no soy de la idea de convertir las fechas en el sql,
para mi esto es una funcion de exposicion y deberia ser escrita en la
aplicacion


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas
Msn:

Maxi.da[arroba]gmail.com

"Luis Gonzalez" escribió en el mensaje
news:
Hola,

De otros hilos vi que recomendaban convert(varchar(10),@fecha,112) para
truncar la hora de una fecha (smalldatetime).

Pero yo veo que lo que hace es convertirlo a una cadena de caracteres y me
da la duda de si es que SQL server trata un valor fecha y un valor tipo
caracter como lo mismo ???

No deberia haber problema si yo defino ?:

declare @fecha smalldatetime

y luego hago:

set @fecha=convert(varchar(10),@parametrofecha,112)

para un select asi:

select * from tabla where tabla.fecha>=@fecha










Respuesta Responder a este mensaje
#3 Maxi
07/05/2005 - 14:57 | Informe spam
Si queres leer un articulo de como se manejan las fechas, te paso uno que
escribi hace un tiempo, quizas te ayude a aclarar algunas ideas.

http://www.microsoft.com/spanish/ms...art157.asp


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas
Msn:

Maxi.da[arroba]gmail.com

"Luis Gonzalez" escribió en el mensaje
news:
Hola,

De otros hilos vi que recomendaban convert(varchar(10),@fecha,112) para
truncar la hora de una fecha (smalldatetime).

Pero yo veo que lo que hace es convertirlo a una cadena de caracteres y me
da la duda de si es que SQL server trata un valor fecha y un valor tipo
caracter como lo mismo ???

No deberia haber problema si yo defino ?:

declare @fecha smalldatetime

y luego hago:

set @fecha=convert(varchar(10),@parametrofecha,112)

para un select asi:

select * from tabla where tabla.fecha>=@fecha










Respuesta Responder a este mensaje
#4 Carlos Rodriguez
07/05/2005 - 15:32 | Informe spam
No creo que haya problema conque lo hagas asi. Porque sql server convierte
los tipos al vuelo.


"Luis Gonzalez" wrote in message
news:
Ejemplo para ser mas claro, este procedimiento para sacar los movimientos


de
un cliente en un rango de fechas se supone que deba funcionar


correctamente?
considerando que pudiera ser llamado con parametros smalldatetime que
incluyan la hora ?

create proc misp_movimientos (@cliente char(10),@fecha1 smalldatetime,
@fecha2 smalldatetime)
as
set nocount on
/*para que ignore la hora pues puede venir incluida en cualquiera de los
parametros*/
set @FECHA1=convert(varchar(10),@FECHA1, 112)
set @FECHA2=convert(varchar(10),@FECHA2 + 1,112)
SELECT * FROM MOVCLI WHERE CLIENTE=@CLIENTE and FECHA>=@FECHA1 and
FECHA<@FECHA2



"Luis Gonzalez" wrote in message
news:
> Hola,
>
> De otros hilos vi que recomendaban convert(varchar(10),@fecha,112)


para
> truncar la hora de una fecha (smalldatetime).
>
> Pero yo veo que lo que hace es convertirlo a una cadena de caracteres y


me
> da la duda de si es que SQL server trata un valor fecha y un valor tipo
> caracter como lo mismo ???
>
> No deberia haber problema si yo defino ?:
>
> declare @fecha smalldatetime
>
> y luego hago:
>
> set @fecha=convert(varchar(10),@parametrofecha,112)
>
> para un select asi:
>
> select * from tabla where tabla.fecha>=@fecha
>
>
>
>
>
>
>
>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida