Principales respuestas
Restar dias a una fecha

Pregunta
-
quiero hacer la siguiente sentencia:
que me reste 40 dias a una fecha especifica o caso contrario que me reste a 40 dias del mes anterior ej.
si estamos agosto, que me reste 40 dias a partir de fines de julio(31072011) ya que todo esto lo quiero poner dentro de un where
select campo1, campo2 from tabla1
where campo_fecha > a 40 dias del mes anterior.puedo poner esto, pero quiero que sea mas automatico
campo_fecha >'20110720' (donde es la fecha - 40 dias)
maculdes
Respuestas
-
Aqui te dejo un ejemplo
select campo1, campo2 from tabla1
where campo_fecha >DATEADD(day, (DAY(campo_fecha_c ) * -1) - 40, campo_fecha_c )Saludos,
Giancarlo Rolando Huarcaya Martinez
Giancarlo Facebook: giancarlo.huarcaya
_- Propuesto como respuesta gcAqp martes, 1 de noviembre de 2011 0:11
- Editado gcAqp martes, 1 de noviembre de 2011 0:14 Cambio de Variable
- Marcado como respuesta Eduardo PorteschellerModerator jueves, 3 de noviembre de 2011 11:01
-
Hola
Aca tienes una solución
declare
@fecha
datetime
set
@fecha=
'20111031'
select
convert(datetime,(convert(char(6),@fecha,112)+'01'))-40
Primero declaramos una variable @fecha con un valor. Luego convertimos esta de tal manera que nos posicionamos en el dia 01 del mes actual. Luego le resto 40 dias.
Espero te sirva
Saludos,
JORGE
- Propuesto como respuesta Miguel Egea GómezMVP, Moderator lunes, 31 de octubre de 2011 23:30
- Marcado como respuesta Eduardo PorteschellerModerator jueves, 3 de noviembre de 2011 11:01
-
Te recomiendo manejarte con DATEADD, la funcion toma tres parametros:
1) unidad a restar (en tu caso DAY)
2) Cuanto restar (en tu caso 40)
3) La variable o campo a la cual restar.
Para mas info http://msdn.microsoft.com/en-us/library/ms186819.aspx
Lic. Andrés M. Aiello | DBA MS SQL - Oracle | http://aiellodba.blogspot.com | @AndresAiello- Propuesto como respuesta Roberto5152 miércoles, 2 de noviembre de 2011 20:28
- Marcado como respuesta Eduardo PorteschellerModerator jueves, 3 de noviembre de 2011 11:01
Todas las respuestas
-
Hola
Aca tienes una solución
declare
@fecha
datetime
set
@fecha=
'20111031'
select
convert(datetime,(convert(char(6),@fecha,112)+'01'))-40
Primero declaramos una variable @fecha con un valor. Luego convertimos esta de tal manera que nos posicionamos en el dia 01 del mes actual. Luego le resto 40 dias.
Espero te sirva
Saludos,
JORGE
- Propuesto como respuesta Miguel Egea GómezMVP, Moderator lunes, 31 de octubre de 2011 23:30
- Marcado como respuesta Eduardo PorteschellerModerator jueves, 3 de noviembre de 2011 11:01
-
Aqui te dejo un ejemplo
select campo1, campo2 from tabla1
where campo_fecha >DATEADD(day, (DAY(campo_fecha_c ) * -1) - 40, campo_fecha_c )Saludos,
Giancarlo Rolando Huarcaya Martinez
Giancarlo Facebook: giancarlo.huarcaya
_- Propuesto como respuesta gcAqp martes, 1 de noviembre de 2011 0:11
- Editado gcAqp martes, 1 de noviembre de 2011 0:14 Cambio de Variable
- Marcado como respuesta Eduardo PorteschellerModerator jueves, 3 de noviembre de 2011 11:01
-
Te recomiendo manejarte con DATEADD, la funcion toma tres parametros:
1) unidad a restar (en tu caso DAY)
2) Cuanto restar (en tu caso 40)
3) La variable o campo a la cual restar.
Para mas info http://msdn.microsoft.com/en-us/library/ms186819.aspx
Lic. Andrés M. Aiello | DBA MS SQL - Oracle | http://aiellodba.blogspot.com | @AndresAiello- Propuesto como respuesta Roberto5152 miércoles, 2 de noviembre de 2011 20:28
- Marcado como respuesta Eduardo PorteschellerModerator jueves, 3 de noviembre de 2011 11:01
-
trata con esto