cómo obtener la fecha de 30 días antes de la fecha de hoy

81

¿Cómo se obtienen los 30 días antes de hoy en SQL.

Innova
fuente
5
¿Qué base de datos SQL utiliza? MS SQL? MySQL? ¿Oráculo?
hgulyan
3
editar: de acuerdo con su pregunta anterior, obviamente es ms sql.
hgulyan

Respuestas:

128

T-SQL

declare @thirtydaysago datetime
declare @now datetime
set @now = getdate()
set @thirtydaysago = dateadd(day,-30,@now)

select @now, @thirtydaysago

o más simplemente

select dateadd(day, -30, getdate())

( DATEADD en BOL / MSDN )

MYSQL

SELECT DATE_ADD(NOW(), INTERVAL -30 DAY)

( más ejemplos de DATE_ADD en ElectricToolbox.com )

amelvin
fuente
Me acabo de dar cuenta, esto está escrito en T-Sql (Sql Server), si la respuesta es necesaria para MySql, entonces algo como: SELECT DATE_ADD (NOW (), INTERVAL -30 DAY) es el equivalente.
amelvin
1
Solo agregue esto a su respuesta :)
hgulyan
En MySQL, DATE_SUB (NOW (), INTERVAL 30 DAY) también funciona
radtek
15

En MS SQL Server, es:

SELECT getdate() - 30;

Merin Nakarmi
fuente
1
¿Cuál es la diferencia Gaffi? ¿Por qué crees que era necesario editar?
Merin Nakarmi
Creo que la única diferencia relevante entre la versión original y la editada es que esta última usa la <code>etiqueta, que se ve mejor. :)
Sk8erPeter
3
SELECT (column name) FROM (table name) WHERE (column name) < DATEADD(Day,-30,GETDATE());

Ejemplo.

SELECT `name`, `phone`, `product` FROM `tbmMember` WHERE `dateofServicw` < (Day,-30,GETDATE()); 
Ashley2605
fuente
1

Intente agregar esto a su wherecláusula:

dateadd(day, -30, getdate())
Chester Porcioncula Velasco
fuente