làm thế nào để có được 30 ngày trước ngày kể từ Todays Date


81

Làm thế nào để bạn có được 30 ngày trước ngày hôm nay trong SQL.


5
Bạn sử dụng SQL DB nào? MS SQL? MySQL? Tiên tri?
hgulyan

3
chỉnh sửa: theo câu hỏi trước của bạn, nó rõ ràng là ms sql.
hgulyan

Câu trả lời:


128

T-SQL

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

select @now, @thirtydaysago

hoặc đơn giản hơn

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

( DATEADD trên BOL / MSDN )

MYSQL

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

( ví dụ về DATE_ADD khác trên ElectricToolbox.com )


Chỉ cần nhận ra, điều này được viết bằng T-Sql (Sql Server), nếu câu trả lời là cần thiết cho MySql thì tương đương như: SELECT DATE_ADD (NOW (), INTERVAL -30 DAY).
amelvin

1
Chỉ cần thêm điều này vào câu trả lời của bạn :)
hgulyan

Trong MySQL, DATE_SUB (NOW (), INTERVAL 30 NGÀY) hoạt động cũng
radtek

15

Trong MS SQL Server, nó là:

SELECT getdate() - 30;


1
Sự khác biệt Gaffi là gì? Tại sao bạn nghĩ rằng chỉnh sửa là cần thiết?
Merin Nakarmi

Tôi nghĩ sự khác biệt có liên quan duy nhất trong phiên bản gốc và phiên bản đã chỉnh sửa là phiên bản sau sử dụng <code>thẻ, trông đẹp hơn. :)
Sk8erPeter

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

Thí dụ.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.