在我的應用程序中,我使用日期(存儲爲日期時間)的方式只使用日期部分。 對於今天發佈的發票,我用下面的(正常工作):日期時間 - 檢查昨天的數據(SQLCe)
WHERE DATEADD(D, 0, DATEDIFF(D, 0, IssuedOn))=DATEADD(D, 0, DATEDIFF(D, 0, GETDATE()))";
但是對於發票昨天發出 - 天當前日期之前?我試圖減去這些,並檢查結果我1但沒有奏效。
感謝您的幫助
在我的應用程序中,我使用日期(存儲爲日期時間)的方式只使用日期部分。 對於今天發佈的發票,我用下面的(正常工作):日期時間 - 檢查昨天的數據(SQLCe)
WHERE DATEADD(D, 0, DATEDIFF(D, 0, IssuedOn))=DATEADD(D, 0, DATEDIFF(D, 0, GETDATE()))";
但是對於發票昨天發出 - 天當前日期之前?我試圖減去這些,並檢查結果我1但沒有奏效。
感謝您的幫助
這是你需要什麼,因爲你使用的是SQL服務器2005年或更早:
WHERE
IssuedOn >= DATEADD(D, 0, DATEDIFF(D, 1, GETDATE()))
and IssuedOn < DATEADD(D, 0, DATEDIFF(D, 0, GETDATE()))
它可以這樣縮短代替:
WHERE
IssuedOn >= DATEDIFF(D, 1, GETDATE())
and IssuedOn < DATEDIFF(D, 0, GETDATE())
請記住標記版本和RDBMS
如果你想索引必須使用一個機會,不列上施加任何作用。你(今天)的條件將被寫成:
WHERE IssuedOn >= DATEADD(day, 0 + DATEDIFF(day, '20000101', CURRENT_TIMESTAMP), '20000101')
AND IssuedOn < DATEADD(day, 1 + DATEDIFF(day, '20000101', CURRENT_TIMESTAMP), '20000101')
和昨天:
WHERE IssuedOn >= DATEADD(day, -1 + DATEDIFF(day, '20000101', CURRENT_TIMESTAMP), '20000101')
AND IssuedOn < DATEADD(day, 0 + DATEDIFF(day, '20000101', CURRENT_TIMESTAMP), '20000101')
正如我所說,它是SQL Ce。 – KhDonen
它的工作;)Thanky你! – KhDonen