algo raro con sql 2008

06/09/2008 - 20:34 por Luis Mata\(N\) | Informe spam
Estoy usando sql 2008

ejecuto el siguiente script

declare @fechagen datetime,@metames decimal(12,2)
set @metames = 274568.90
set @fechagen = getdate()
declare @dinicial datetime, @numdias int, @diaactual int
set @numdias = DAY(DATEADD(DAY, -1, CONVERT(VARCHAR(6), DATEADD(MONTH, 1,
@fechagen), 112) + '01'))
set @diaactual = day(@fechagen)
declare @metaahora decimal(12,2), @diasreal int --decimal(12,2)
set @diasreal = (@diaactual/@numdias)*(@numdias-4)
print @diaactual --valor 6 dias de mes
print @numdias --valor 30 numero de dia actual
print (@diaactual/@numdias)
print @diasreal

pero el resultado me sale 0 a pesar que la division de hace con valores
superiores a 0, habersi me dan una mano solo copien y peguen el script y
ejecutenlo haber como les sale.

lo ejecuto sobre w vista bussines

Luis
 

Leer las respuestas

#1 Luis Mata\(N\)
06/09/2008 - 20:48 | Informe spam
lo solucione de la siguiente menera:

declare @fechagen datetime,@metames decimal(12,2)
set @metames = 274568.90
set @fechagen = getdate()
declare @dinicial datetime, @numdias int, @diaactual int
set @numdias = DAY(DATEADD(DAY, -1, CONVERT(VARCHAR(6), DATEADD(MONTH, 1,
@fechagen), 112) + '01'))
set @diaactual = day(@fechagen)
declare @metaahora decimal(12,2), @diasreal decimal(12,4)
set @diasreal = (cast(@diaactual as decimal(12,4))/cast(@numdias as
decimal(12,4)))*(cast(@numdias as decimal(12,4))-4)
print @diaactual --valor 6 dias de mes
print @numdias --valor 30 numero de dia actual
print (@diaactual/@numdias)
print @diasreal

mi pregunta

¿no se puede dividir variables int y almacenarlas en una variable
decimal(12,4) o int?
lo de int se entiende que se pueden perder datos pero en el decimal...ummmm

Luis


"Luis Mata(N)" escribió en el mensaje de
noticias news:%
Estoy usando sql 2008

ejecuto el siguiente script

declare @fechagen datetime,@metames decimal(12,2)
set @metames = 274568.90
set @fechagen = getdate()
declare @dinicial datetime, @numdias int, @diaactual int
set @numdias = DAY(DATEADD(DAY, -1, CONVERT(VARCHAR(6), DATEADD(MONTH, 1,
@fechagen), 112) + '01'))
set @diaactual = day(@fechagen)
declare @metaahora decimal(12,2), @diasreal int --decimal(12,2)
set @diasreal = (@diaactual/@numdias)*(@numdias-4)
print @diaactual --valor 6 dias de mes
print @numdias --valor 30 numero de dia actual
print (@diaactual/@numdias)
print @diasreal

pero el resultado me sale 0 a pesar que la division de hace con valores
superiores a 0, habersi me dan una mano solo copien y peguen el script y
ejecutenlo haber como les sale.

lo ejecuto sobre w vista bussines

Luis

Preguntas similares