Problemas con fechas en un sp

21/12/2004 - 18:11 por elv | Informe spam
Hola,
Que tal a todos, tengo un problema en un stored procedure
en SQL, esta es un pedacito del código que necesito para
poder manipular unas fechas dentro de otro stored que esta
mas grande; el siguiente pedacito de código pegenlo en el
query analyzer y asi chequenlo:

imaginen que esto es parte de otras cosas dentro de el
stored, estos 2 renglones siguientes no se pueden modificar
asi recibo los datos, los tipos de datos no pueden cambiar
sobre todo @DaC_FecAva2

DECLARE @DaC_FecAva2 NVARCHAR(10)
DECLARE @DaC_FecAva DATETIME

esta fecha la recibo asi, de esa manera no puedo
modificarla y tiene el formato YYYY/DD/MM pero el formato
si lo puedo modificar sólo que lo deje asi porque solo asi
puedo insertarla o actualizarla en sql a la tabla como
formato datime

SET @DaC_FecAva2= 2004/07/19

lo que realmente necesito es validar si el campo
@DaC_FecAva2 vienen vacio y si es asi lo pongo en null,si
no, tengo que convertirlo a datetime en esta variable
@DaC_FecAva

El problema es que ni siquiera tiene las comillas simples
@DaC_FecAva2 para ser varchar

IF @DaC_FecAva2 = '' BEGIN SET @DaC_FecAva2= NULL END
else
begin

set @DaC_FecAva=CONVERT(DATETIME, @DaC_FecAva2 ,120)
end
SELECT @DaC_FecAva
al final @DaC_FecAva tiene que ser datetime con el valor
de @DaC_FecAva2, pero no se como manipularlo

ayudenme please!!! :(


Muchas gracias por la ayuda que me puedan dar.mil
gracias

Preguntas similare

Leer las respuestas

#1 Maxi
21/12/2004 - 18:18 | Informe spam
Hola, y si usas Isnull?


Salu2
Maxi


"elv@" escribió en el mensaje
news:0f0401c4e780$2873e2d0$
Hola,
Que tal a todos, tengo un problema en un stored procedure
en SQL, esta es un pedacito del código que necesito para
poder manipular unas fechas dentro de otro stored que esta
mas grande; el siguiente pedacito de código pegenlo en el
query analyzer y asi chequenlo:

imaginen que esto es parte de otras cosas dentro de el
stored, estos 2 renglones siguientes no se pueden modificar
asi recibo los datos, los tipos de datos no pueden cambiar
sobre todo @DaC_FecAva2

DECLARE @DaC_FecAva2 NVARCHAR(10)
DECLARE @DaC_FecAva DATETIME

esta fecha la recibo asi, de esa manera no puedo
modificarla y tiene el formato YYYY/DD/MM pero el formato
si lo puedo modificar sólo que lo deje asi porque solo asi
puedo insertarla o actualizarla en sql a la tabla como
formato datime

SET @DaC_FecAva2= 2004/07/19

lo que realmente necesito es validar si el campo
@DaC_FecAva2 vienen vacio y si es asi lo pongo en null,si
no, tengo que convertirlo a datetime en esta variable
@DaC_FecAva

El problema es que ni siquiera tiene las comillas simples
@DaC_FecAva2 para ser varchar

IF @DaC_FecAva2 = '' BEGIN SET @DaC_FecAva2= NULL END
else
begin

set @DaC_FecAva=CONVERT(DATETIME, @DaC_FecAva2 ,120)
end
SELECT @DaC_FecAva
al final @DaC_FecAva tiene que ser datetime con el valor
de @DaC_FecAva2, pero no se como manipularlo

ayudenme please!!! :(


Muchas gracias por la ayuda que me puedan dar.mil
gracias
Respuesta Responder a este mensaje
#2 Tinoco
21/12/2004 - 20:21 | Informe spam
Hola, este codigo no funciona porque estas asumiendo que la fecha viene sin
comillas, si la dejas asi en el campo varchar(10) se inserta un numero, no
una cadena con una fecha.

Me imagino que este campo viene de otra parte, donde es de tipo caracter,
entonces las comillas simples vienen implicitas. Yo creo que tu problema es
otra cosa...

Hermilson Tinoco

"elv@" wrote:

Hola,
Que tal a todos, tengo un problema en un stored procedure
en SQL, esta es un pedacito del código que necesito para
poder manipular unas fechas dentro de otro stored que esta
mas grande; el siguiente pedacito de código pegenlo en el
query analyzer y asi chequenlo:

imaginen que esto es parte de otras cosas dentro de el
stored, estos 2 renglones siguientes no se pueden modificar
asi recibo los datos, los tipos de datos no pueden cambiar
sobre todo @DaC_FecAva2

DECLARE @DaC_FecAva2 NVARCHAR(10)
DECLARE @DaC_FecAva DATETIME

esta fecha la recibo asi, de esa manera no puedo
modificarla y tiene el formato YYYY/DD/MM pero el formato
si lo puedo modificar sólo que lo deje asi porque solo asi
puedo insertarla o actualizarla en sql a la tabla como
formato datime

SET @DaC_FecAva2= 2004/07/19

lo que realmente necesito es validar si el campo
@DaC_FecAva2 vienen vacio y si es asi lo pongo en null,si
no, tengo que convertirlo a datetime en esta variable
@DaC_FecAva

El problema es que ni siquiera tiene las comillas simples
@DaC_FecAva2 para ser varchar

IF @DaC_FecAva2 = '' BEGIN SET @DaC_FecAva2= NULL END
else
begin

set @DaC_FecAva=CONVERT(DATETIME, @DaC_FecAva2 ,120)
end
SELECT @DaC_FecAva
al final @DaC_FecAva tiene que ser datetime con el valor
de @DaC_FecAva2, pero no se como manipularlo

ayudenme please!!! :(


Muchas gracias por la ayuda que me puedan dar.mil
gracias

Respuesta Responder a este mensaje
#3 ulises
21/12/2004 - 22:57 | Informe spam
Siempre tengo como norma cuando manipulo fecha como
caracteres usar el formato YYYYMMDD, de esa manera si
deseas convertirlo a fecha basta con asignar el valor de la
cadena al campo datetime, p.e.

declare @fechachar nvarchar(10)
declare @fechadate datetime
set @fechachar = '2004/12/15'
set @fechachar = Substring(@fechachar,1,4) +
Substring(@fechachar,6,2) + Substring(@fechachar,9,2)
set @fechadate = CASE WHEN @fechachar = '' THEN NULL ELSE
@fechachar END
select @fechadate as fecha

fecha
2004-12-15 00:00:00.000

(1 row(s) affected)

si lo pruebas con '' :

declare @fechachar nvarchar(10)
declare @fechadate datetime
set @fechachar = ''
set @fechachar = Substring(@fechachar,1,4) +
Substring(@fechachar,6,2) + Substring(@fechachar,9,2)
set @fechadate = CASE WHEN @fechachar = '' THEN NULL ELSE
@fechachar END
select @fechadate as fecha

fecha
NULL

(1 row(s) affected)

Saludos,
Ulises
Hola,
Que tal a todos, tengo un problema en un stored procedure
en SQL, esta es un pedacito del código que necesito para
poder manipular unas fechas dentro de otro stored que esta
mas grande; el siguiente pedacito de código pegenlo en el
query analyzer y asi chequenlo:

imaginen que esto es parte de otras cosas dentro de el
stored, estos 2 renglones siguientes no se pueden modificar
asi recibo los datos, los tipos de datos no pueden cambiar
sobre todo @DaC_FecAva2

DECLARE @DaC_FecAva2 NVARCHAR(10)
DECLARE @DaC_FecAva DATETIME

esta fecha la recibo asi, de esa manera no puedo
modificarla y tiene el formato YYYY/DD/MM pero el formato
si lo puedo modificar sólo que lo deje asi porque solo asi
puedo insertarla o actualizarla en sql a la tabla como
formato datime

SET @DaC_FecAva2= 2004/07/19

lo que realmente necesito es validar si el campo
@DaC_FecAva2 vienen vacio y si es asi lo pongo en null,si
no, tengo que convertirlo a datetime en esta variable
@DaC_FecAva

El problema es que ni siquiera tiene las comillas simples
@DaC_FecAva2 para ser varchar

IF @DaC_FecAva2 = '' BEGIN SET @DaC_FecAva2= NULL END
else
begin

set @DaC_FecAva=CONVERT(DATETIME, @DaC_FecAva2 ,120)
end
SELECT @DaC_FecAva
al final @DaC_FecAva tiene que ser datetime con el valor
de @DaC_FecAva2, pero no se como manipularlo

ayudenme please!!! :(


Muchas gracias por la ayuda que me puedan dar.mil
gracias
.

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