restar un mes

05/09/2005 - 18:10 por Elva Pascacio | Informe spam
Hola Grupo,

Hola a todos, tengo una pregunta, la tabla con la que estoy trabajando
separa la fecha en 3 campos (año, mes y dia) todos son smallint lo que
requiero hacer es de la fecha de hoy traerme un mes completo hacia atras es
decir si hoy es 5 de Septiembre traerme el 5 de Agosto y borrar en la tabla
del 5 de Agosto al 5 Julio, pero no tengo ni idea como empezar.

Espero alguno de ustedes me puede ayudar.

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
05/09/2005 - 18:20 | Informe spam
Hola,

Aqui tienes un ejemplo con DateAdd que resta un mes a la fecha del sistema
SELECT DATEADD(mm, -1, getdate())

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Elva Pascacio" escribió en el
mensaje news:
Hola Grupo,

Hola a todos, tengo una pregunta, la tabla con la que estoy trabajando
separa la fecha en 3 campos (año, mes y dia) todos son smallint lo que
requiero hacer es de la fecha de hoy traerme un mes completo hacia atras
es
decir si hoy es 5 de Septiembre traerme el 5 de Agosto y borrar en la
tabla
del 5 de Agosto al 5 Julio, pero no tengo ni idea como empezar.

Espero alguno de ustedes me puede ayudar.

Muchas gracias
Respuesta Responder a este mensaje
#2 Elva Pascacio
05/09/2005 - 18:47 | Informe spam
Salvador,
creo que no me explique muy bien :OS, los campo con lo que requiero trabajar
son 3 los cuales son de tipo smallint (Ano , mes y dia), al campo de mes
necesito restarle 1 mes y traerme todos los registro de ese mes

"Salvador Ramos" escribió:

Hola,

Aqui tienes un ejemplo con DateAdd que resta un mes a la fecha del sistema
SELECT DATEADD(mm, -1, getdate())

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Elva Pascacio" escribió en el
mensaje news:
> Hola Grupo,
>
> Hola a todos, tengo una pregunta, la tabla con la que estoy trabajando
> separa la fecha en 3 campos (año, mes y dia) todos son smallint lo que
> requiero hacer es de la fecha de hoy traerme un mes completo hacia atras
> es
> decir si hoy es 5 de Septiembre traerme el 5 de Agosto y borrar en la
> tabla
> del 5 de Agosto al 5 Julio, pero no tengo ni idea como empezar.
>
> Espero alguno de ustedes me puede ayudar.
>
> Muchas gracias



Respuesta Responder a este mensaje
#3 Salvador Ramos
05/09/2005 - 19:08 | Informe spam
Perdón, leí muy rápido y creía que eran smalldatetime :-s

Pues monta una cadena con el formato AAAAMMDD, conviertela a smalldatetime y
aplica la función que te indico.
Algo así:
SELECT DATEADD(mm, -1, CAST('20050905' AS SMALLDATETIME))

Revisate las funciones CAST y CONVERT si no es esa exactamente la conversión
que necesitas.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Elva Pascacio" escribió en el
mensaje news:
Salvador,
creo que no me explique muy bien :OS, los campo con lo que requiero
trabajar
son 3 los cuales son de tipo smallint (Ano , mes y dia), al campo de mes
necesito restarle 1 mes y traerme todos los registro de ese mes

"Salvador Ramos" escribió:

Hola,

Aqui tienes un ejemplo con DateAdd que resta un mes a la fecha del
sistema
SELECT DATEADD(mm, -1, getdate())

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Elva Pascacio" escribió en el
mensaje news:
> Hola Grupo,
>
> Hola a todos, tengo una pregunta, la tabla con la que estoy trabajando
> separa la fecha en 3 campos (año, mes y dia) todos son smallint lo que
> requiero hacer es de la fecha de hoy traerme un mes completo hacia
> atras
> es
> decir si hoy es 5 de Septiembre traerme el 5 de Agosto y borrar en la
> tabla
> del 5 de Agosto al 5 Julio, pero no tengo ni idea como empezar.
>
> Espero alguno de ustedes me puede ayudar.
>
> Muchas gracias



Respuesta Responder a este mensaje
#4 Nuno Santos
05/09/2005 - 19:25 | Informe spam
Tienes dos soluciones:
1. Juntas los campos separados en uno del tipo fecha e aplicas la
función DATEADD (Recomiento)
2. La otra opción era hacer el select con "case when" para poder restar
menos 1 al mes, atención que si el mes es uno seria mes 12 del año año -1
... complicado, lo mejor es la primera opción...

Ejemplo:
SELECT Id FROM testedatas
WHERE DATEADD(mm,-1,CONVERT(Datetime,
CONVERT(Datetime,CAST(Ano as varchar(4))+ '/' + CAST(Mes as varchar(2)) +
'/' + CAST (Dia as varchar(20)),120) ,120))
= DATEADD(mm,-1,CONVERT(Datetime,CAST(Ano as varchar(4))+ '/'
+ CAST(Mes as varchar(2)) +'/'+ CAST (Dia as varchar(20)),120))

Espero que ayude...
Atención que en el ejemplo hice las dos partes del where igual...


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Elva Pascacio" wrote in message
news:
Salvador,
creo que no me explique muy bien :OS, los campo con lo que requiero
trabajar
son 3 los cuales son de tipo smallint (Ano , mes y dia), al campo de mes
necesito restarle 1 mes y traerme todos los registro de ese mes

"Salvador Ramos" escribió:

Hola,

Aqui tienes un ejemplo con DateAdd que resta un mes a la fecha del
sistema
SELECT DATEADD(mm, -1, getdate())

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Elva Pascacio" escribió en el
mensaje news:
> Hola Grupo,
>
> Hola a todos, tengo una pregunta, la tabla con la que estoy trabajando
> separa la fecha en 3 campos (año, mes y dia) todos son smallint lo que
> requiero hacer es de la fecha de hoy traerme un mes completo hacia
> atras
> es
> decir si hoy es 5 de Septiembre traerme el 5 de Agosto y borrar en la
> tabla
> del 5 de Agosto al 5 Julio, pero no tengo ni idea como empezar.
>
> Espero alguno de ustedes me puede ayudar.
>
> Muchas gracias



Respuesta Responder a este mensaje
#5 c
06/09/2005 - 00:21 | Informe spam
Como te han comentado lo ideal seria que unas los campos para poder calcular
un mes antes de la fecha, ahora para hacer esto, pues no es mejor que tengas
el campo completo dentro de la tabla, para que separarlo, o en su defecto si
es necesario tenerlo separado, tonces sumar una 4 columna que tenga la
informacion de la fecha completa. A veces es un error de diseño de la DB
Gracias

Carlos Andrés Lozano
Solution Development
Nativa Tecnologías



"Elva Pascacio" escribió:

Salvador,
creo que no me explique muy bien :OS, los campo con lo que requiero trabajar
son 3 los cuales son de tipo smallint (Ano , mes y dia), al campo de mes
necesito restarle 1 mes y traerme todos los registro de ese mes

"Salvador Ramos" escribió:

> Hola,
>
> Aqui tienes un ejemplo con DateAdd que resta un mes a la fecha del sistema
> SELECT DATEADD(mm, -1, getdate())
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net (información sobre SQL server, Windows DNA y .NET)
>
> "Elva Pascacio" escribió en el
> mensaje news:
> > Hola Grupo,
> >
> > Hola a todos, tengo una pregunta, la tabla con la que estoy trabajando
> > separa la fecha en 3 campos (año, mes y dia) todos son smallint lo que
> > requiero hacer es de la fecha de hoy traerme un mes completo hacia atras
> > es
> > decir si hoy es 5 de Septiembre traerme el 5 de Agosto y borrar en la
> > tabla
> > del 5 de Agosto al 5 Julio, pero no tengo ni idea como empezar.
> >
> > Espero alguno de ustedes me puede ayudar.
> >
> > Muchas gracias
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida