如何从今天起获得30天之前的日期


Answers:


128

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)

有关ElectricToolbox.com的更多DATE_ADD示例


刚意识到,这是用T-Sql(SQL Server)编写的,如果MySql需要答案,则类似以下内容:SELECT DATE_ADD(NOW(),INTERVAL -30 DAY)是等效的。
amelvin

1
只需将其添加到您的答案中即可:)
hgulyan 2010年

在MySQL中,DATE_SUB(NOW(),INTERVAL 30 DAY)也可以正常工作
radtek

15

在MS SQL Server中,它是:

SELECT getdate() - 30;


1
Gaffi有什么区别?为什么您认为必须进行编辑?
Merin Nakarmi 2012年

我认为原始版本和编辑版本中唯一相关的区别是后者使用<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()); 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.