як отримати 30 днів до дати з сьогоднішньої дати


82

Як ви отримуєте 30 днів до сьогодні в SQL.


5
Яку БД SQL ви використовуєте? MS SQL? MySQL? Oracle?
hgulyan

3
редагувати: згідно з вашим попереднім запитанням, це, очевидно, ms sql.
hgulyan

Відповіді:


131

T-SQL

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

select @now, @thirtydaysago

або простіше

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

( DATEADD на BOL / MSDN )

MYSQL

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

( більше прикладів DATE_ADD на ElectricToolbox.com )


Щойно зрозумівши, це написано на T-Sql (Sql Server), якщо відповідь потрібна для MySql, то щось на зразок: SELECT DATE_ADD (NOW (), INTERVAL -30 DAY) є еквівалентом.
amelvin

1
Просто додайте це до своєї відповіді :)
hgulyan

У MySQL також працює DATE_SUB (ЗАРАЗ (), ІНТЕРВАЛ 30
ДНІВ)

15

У MS SQL Server це:

SELECT getdate() - 30;


1
У чому різниця Гаффі? Чому ви вважаєте, що редагування було необхідним?
Merin Nakarmi

1
Я думаю, що єдиною важливою різницею в оригіналі та відредагованій версії є те, що остання використовує <code>тег, який виглядає краще. :)
Sk8erPeter

3
SELECT (column name) FROM (table name) WHERE (column name) < DATEADD(Day,-30,GETDATE());

Приклад.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.