2014-10-01 34 views
0

這是當前/舊的Access查詢I inherited.Need檢索過去的一年事件日誌。如何在Where子句中編寫更好的當前日期?需要更好的當前日期時間語法

Select (ID,DateLog,TimeLog) 
    From tblActiveCase 
    WHERE (((DatePart("yyyy",[DateLog])) Between DatePart("yyyy",Now())-1 And   
    DatePart("yyyy",Now()))) 

- 我的新StoredProc

Select (ID,DateLog,TimeLog) 
    From tblActiveCase 
    WHERE DateLog <= DATEADD(YEAR, -1, GETDATE()) 

有沒有更好的方式來寫呢?

+0

澄清:我需要得到當前的日期,到1年前。 – 2014-10-01 18:00:28

+2

我認爲你需要'> =',而不是'<='。如果數據庫中的日期是DateTime,那麼最好將時間設置爲00:00:00,否則如果您的查詢在下午運行,則會錯過一年前在早上創建的記錄。 – 2014-10-01 18:35:30

+0

你可以澄清,如果你的意思是它是MS Access *或* SQL Server,後者是你標記你的問題。 – 2014-10-01 19:08:38

回答

0
declare @date date 
set @date = DATEADD(YEAR, -1, GETDATE()) 

    Select (ID,DateLog,TimeLog) 
     From tblActiveCase 
     WHERE DateLog >= @date 
+0

你可以在Access中使用'DECLARE'嗎?我找到了它,但是找不到這樣的東西。 – 2014-10-01 19:02:43

+0

哦!它被鎖定SQL-SERVER-2008並且還提到了一個存儲過程。現在我不確定我在說什麼 – Horaciux 2014-10-01 19:04:00

+0

我已經添加了一條評論,要求OP澄清。使用SQL Server更容易。 – 2014-10-01 19:09:54

相關問題