sql前一天 - 如何使用SQL Server從當前日期減去30天




sql上個月 (3)

您可以將其轉換為datetime ,然後使用DATEADD(DAY, -30, date)

看到here

編輯

我懷疑很多人都在發現這個問題,因為他們希望從當前日期中減去(問題的標題,但不是OP的意圖)。 以下munyul的評論更具體地回答了這個問題。 由於評論被認為是空靈的(可以在任何給定點刪除),我將在此重複:

DATEADD(DAY, -30, GETDATE())

我無法從當前日期減去30天,我是SQL Server的新手。

這是我專欄中的數據

date 
------------------------------
Fri, 14 Nov 2014 23:03:35 GMT
Mon, 03 Nov 2014 15:18:00 GMT
Tue, 11 Nov 2014 01:24:47 GMT
Thu, 06 Nov 2014 19:13:47 GMT
Tue, 04 Nov 2014 12:37:06 GMT
Fri, 1 Nov 2014 00:33:00 GMT
Sat, 5 Nov 2014 01:06:00 GMT
Sun, 16 Nov 2014 06:37:12 GMT

為了創建上面的列,我使用了varchar(50) ,現在我的問題是我想顯示從日期列開始15-20天的日期可以幫助解決這個問題嗎? 更新[我如何按順序顯示最近7天的日期


試試這個:

將VARCHAR值轉換為DATETIME並為減法添加-30。 另外,在sql-server中格式為Fri,2014年11月14日23:03:35 GMT未轉換為DATETIME。 嘗試使用substring:

SELECT DATEADD(dd, -30, 
       CAST(SUBSTRING ('Fri, 14 Nov 2014 23:03:35 GMT', 6, 21) 
       AS DATETIME))

SELECT DATEADD(day,-30,date) AS before30d 
FROM...

但強烈建議將日期保留在datetime列中,而不是varchar。





sql-server-2012