我試圖做到這一點:構成帶有日期的SQL查詢偏移
select * from table
where ChangingDate(this is a column which has date and time) = today's date + 1
我SQL的學習者,我不擅長的日期格式。我很感激有人能幫忙。
謝謝!
我試圖做到這一點:構成帶有日期的SQL查詢偏移
select * from table
where ChangingDate(this is a column which has date and time) = today's date + 1
我SQL的學習者,我不擅長的日期格式。我很感激有人能幫忙。
謝謝!
這將返回明天的數據
WHERE ChangingDate > = dateadd(dd, datediff(dd, 0, getdate())+1, 0)
and ChangingDate < dateadd(dd, datediff(dd, 0, getdate())+2, 0)
這將返回今天的數據
WHERE ChangingDate > = dateadd(dd, datediff(dd, 0, getdate())+0, 0)
and ChangingDate < dateadd(dd, datediff(dd, 0, getdate())+1, 0)
你可能想嘗試像
select * from table where columndate=GetDate() + 1
不工作,他有時間以及 – SQLMenace 2011-03-23 20:07:11
數據庫中存在日期時間的技巧 - 你幾乎不需要比較,因爲正如你看到的那樣,它們還包含一個時間分量。相反,您想知道它是否落入包含整個一天的範圍內。 SQL Server 2008中有一個新的date
類型有助於這一點,但要等到升級,像這樣做:
WHERE (ChangingDate >= dateadd(dd,1, datediff(dd,0, getDate()))
AND ChangingDate < dateadd(dd,2, datediff(dd,0, getDate())))
你可以做,如果你是一定等號比較所有記錄有0〜值(或其他已知值)作爲該列中的時間分量。你不想做的是截斷列,因爲這意味着每個記錄做了額外的工作(慢),並會打破你的索引(非常慢)。
select *
from MyTable
where DATEADD(dd, 0, DATEDIFF(dd, 0, ChangingDate)) = SELECT DATEADD(dd, 1, DATEDIFF(dd, 0, GETDATE()))
聽起來像是你要查找的DATEPART函數,其中列日有相同的年,月,日不顧一天的時間:
SELECT * FROM Table
WHERE
DATEPART(Month, Date) = DATEPART(Month, @SomeDate)
AND DATEPART(Day, Date) = DATEPART(Day, @SomeDate)
AND DATEPART(Year, Date) = DATEPART(Year, @SomeDate)
否則,您要使用使用DateAdd像其他海報。
不可靠,請查看http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/only-in-a-database-can-you-get-1000-impr – SQLMenace 2011-03-23 20:06:55
你的問題是什麼? – 2011-03-23 20:01:51