我正在尋找如何根據日期和時間獲取表格值的最佳決策,但在一個小時之內。T-SQL(日期) - 如何在一小時內獲得價值?
我意味着什麼這樣(僞代碼):
SELECT value FROM Table WHERE date BETWEEN getdate() AND getdate()-ONE_HOUR
對於這個問題Table
的目的有以下欄目:
value
date
任何有用的代碼片段表示讚賞:)
我正在尋找如何根據日期和時間獲取表格值的最佳決策,但在一個小時之內。T-SQL(日期) - 如何在一小時內獲得價值?
我意味着什麼這樣(僞代碼):
SELECT value FROM Table WHERE date BETWEEN getdate() AND getdate()-ONE_HOUR
對於這個問題Table
的目的有以下欄目:
value
date
任何有用的代碼片段表示讚賞:)
SELECT Value
FROM Table
WHERE Date between dateadd(hour, -1, getdate()) and getdate()
的DATEADD
功能的描述:
DATEADD (datepart , number , date)
返回指定日期與指定數目的時間間隔(帶符號的整數)加入到該日期的指定datepart。
datepart Abbreviations
----------- -------------
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw, w
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns
的更多信息:
這很有趣。謝謝。如果我在這個函數中使用-3這樣的const呢?它會給我過去3小時的價值結果嗎? – user592704
肯定。數值(參數2)被添加到日期值(參數3)(或帶有負值,減去)。如果你使用一天而不是一小時,它會減去1(在我的例子中)而不是1小時,而-3會使它減去3天。 –
這樣的事情應該工作。
SELECT value
FROM Table
WHERE date >= dateadd(hour,-1,getdate())
and date <= getdate()
你說得對。我已經更改了現在的查詢。 – Gabe
評論回溯。我不確定是否> =和<=或之間更有效,但有一天我必須測試。 –
@ TheEvilGreebo - 沒什麼差別。無論如何,謂詞將在計劃中顯示爲「> =」和「<=」。 –
作爲一項規則,最好是調用GETDATE()一次,並保存在一個變量中的值,然後使用該變量根據需要。它避免了午夜左右的各種瑕疵。 – HABO