91

How do you get the 30 days before today in SQL.

Mr. Radical
  • 1,847
  • 1
  • 19
  • 29
Innova
  • 4,831
  • 21
  • 76
  • 107

4 Answers4

150

T-SQL

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

select @now, @thirtydaysago

or more simply

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

(DATEADD on BOL/MSDN)

MYSQL

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

( more DATE_ADD examples on ElectricToolbox.com)

amelvin
  • 8,919
  • 4
  • 38
  • 59
19

In MS SQL Server, it is:

SELECT getdate() - 30;

Gaffi
  • 4,307
  • 8
  • 43
  • 73
Merin Nakarmi
  • 3,148
  • 3
  • 35
  • 42
4
SELECT (column name) FROM (table name) WHERE (column name) < DATEADD(Day,-30,GETDATE());

Example.

SELECT `name`, `phone`, `product` FROM `tbmMember` WHERE `dateofServicw` < (Day,-30,GETDATE()); 
Community
  • 1
  • 1
Ashley2605
  • 41
  • 4
2

Try adding this to your where clause:

dateadd(day, -30, getdate())
jalsh
  • 801
  • 6
  • 18