所有你想從sqlserver這是完全不好的主意,你需要一些事情C#端。我創建了一個你剛剛通過日期並給出結果的樣本。
begin tran
--drop table tempnew
--create table tempnew
--(id varchar(50), name varchar(100), date1 date)
--set dateformat dmy
--insert into tempnew
--values
--('id1' , 'name1', '24/09/2014')
--,('id2' , 'name2', '23/09/2014')
--,('id3' , 'name3', '23/09/2014')
--,('id4' , 'name4', '22/09/2014')
--,('id5' , 'name5', '15/09/2014')
--create procedure getdataBydate
--(
-- @paraDate date = null
--)
--as
declare @paraDate date = getdate() -3
declare @lastmonthofday int
select @lastmonthofday = datepart(DD, DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, GETDATE()) + 1, 0)))
select @paraDate,@lastmonthofday,* from tempnew
select name , 'date :', convert(varchar ,date1, 106) date1,
case
when @paraDate = cast (getdate() AS DATE) then 'Today <br> ----- <br>'
when @paraDate = cast (dateadd(dd,-1, getdate()) as DATE) then 'Yesterday <br> ----- <br>'
when @paraDate >= cast (dateadd(dd,-14, getdate()) as DATE) then 'two weeks ago <br> ----- <br>'
when @paraDate = cast (dateadd(dd,[email protected], getdate()) as DATE) then 'last month <br> ----- <br>'
else 'older <br> ----- <br>'
end
from tempnew
where DATE1 <= GETDATE()
and date1 >= @paraDate
--select *
--from tempnew
--where DATE1 <= GETDATE()
--and date1 >= @paraDate
----I don't know why between not work here
----between cast('2014-09-24' as DATE) and cast('2014-09-15' as date)
----cast DATE1 between cast(GETDATE() AS date) and @paraDate
--drop table tempnew
rollback
歡迎來到Stack Overflow。這不是在這裏提出問題的好方法。你有沒有嘗試_anything_到目前爲止解決你的問題?首先顯示你的努力,以便人們可以展示他們的努力請閱讀[常見問題],[問]和[幫助]作爲開始。 – 2014-09-24 06:28:35
在這種情況下,您可以使用[病例聲明](http://msdn.microsoft.com/zh- /Iibrary/ms181765.aspx) 。您也可以使用linq過濾數據,以便在列表視圖中顯示它。 – 2014-09-24 06:30:30