簡體   English   中英

兩個日期之間的差異

[英]The difference between two dates

為了學習,我一直在寫一些有關SQL Server的查詢。

我想知道如何在SQL查詢中獲得90天前的今天差異?

DATEDIFF

http://msdn.microsoft.com/en-us/library/ms189794.aspx

DECLARE @90DaysAgo datetime
        ,@Today datetime

SET @90DaysAgo = DATEADD(d, -90, GETDATE())
SET @Today = GETDATE()

SELECT DATEDIFF(d, @90DaysAgo, @Today) --Returns 90

您需要DATEADD而不是DATEDIFF,並且需要確定是否需要90天:

SELECT DATEADD(day,-90,CURRENT_TIMESTAMP)

或3個月前:

SELECT DATEADD(month,-3,CURRENT_TIMESTAMP)

嘗試使用此方法返回確切的90年前的日期和時間:

SELECT GETDATE()-90

輸出:

-----------------------
2011-05-20 10:55:12.360

(1 row(s) affected)

這只會為您提供90天前的日期,時間為00:00:00.000:

SELECT DATEADD(day,DATEDIFF(day,0,GETDATE()),-90)

輸出:

-----------------------
2011-05-20 00:00:00.000

(1 row(s) affected)

這將正確地舍入到3個月前(不是90天前)的那一天的午夜,這似乎是您想要的(08-18-> 05-18是92天,因為那里有兩個31st)。

...
WHERE column >= DATEADD(MONTH, -3, 
    DATEADD(DAY, DATEDIFF(DAY, '20000101', CURRENT_TIMESTAMP), '20000101'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM