儲存裡查詢屬於某日期的季度資料或本季度的資料

2021-04-12 20:58:04 字數 2445 閱讀 1519

儲存裡呼叫函式

注:substring(cast(getdate() as nvarchar(500)), 7, 4) 也是得到2007

select substring(cast(getdate() as nvarchar(500)), 6, 5) as expr1 from jdkh

select substring(cast(getdate() as nvarchar(500)), 7, 4) as expr1 from jdkh

得到的都是2007

select getdate() as expr1 from jdkh

得到的是2007-3-2 10:11:33

-----------------------------------------

為什麼儲存裡

set @strsql4= @strsql4+ ' ' + 'and q11 = (substring(cast(getdate() as nvarchar(500)), 6, 5))'

找不出資料

就是要set @strsql4= @strsql4+ ' ' + 'and q11 = (substring(cast(getdate() as nvarchar(500)), 7, 4))'

-------------------------------------------

函式寫在**?

tables 建立表

stored procedures 建立儲存

寫在user defined functions

儲存:if @sql3 is null or @sql3=''

set @strsql4= @strsql4+ ' ' + 'and (substring(cast(q10 as nvarchar(500)),6,5))=(substring(cast(getdate() as nvarchar(500)),6,5))'

else

begin

set @strsql4= @strsql4+ ' ' + 'and (substring(cast(q10 as nvarchar(500)),6,5))='+@sql3+''

end查詢和某年相等的資料或本年的資料

if @sql4 is null or @sql4=''

set @strsql4 = @strsql4+ ' ' + ' and dbo.computequarter(q10) = dbo.computequarter2(getdate())'

else

begin

set @strsql4 = @strsql4+ ' ' + ' and dbo.computequarter(q10) = '+ @sql4

endq10和getdate()都是引數

第乙個函式dbo.computequarter(getdate())功能是顯示本季度的資料

第二個函式dbo.computequarter2(q10)功能是顯示和某日期相對應季度的資料(判斷日期屬於哪個季度)

dbo.computequarter(q10)就是把時間欄位q10轉化為季度的函式,等價於datepart(qq,q10)

-------------------------

函式1:

create function dbo.computequarter (@date datetime)

returns int

asbegin

declare @month int

declare @jidu int

set @month = month(@date)

if(@month > 0 and @month <4)

set @jidu =1

else if(@month >= 4 and @month <7)

set @jidu =2

else if(@month >= 7 and @month <10)

set @jidu =3

else

set @jidu =4

return(@jidu)

end函式2:

create function dbo.computequarter2(@date datetime)

returns int

asbegin

declare @month int

declare @jidu int

set @month = month(@date)

if(@month > 0 and @month <4)

set @jidu =1

else if(@month >= 4 and @month <7)

set @jidu =2

else if(@month >= 7 and @month <10)

set @jidu =3

else

set @jidu =4

return(@jidu)

end

某年某月某日屬於某月的第幾周

有人在php版問 某月某日所對應的週數應該怎麼做.比如9月8號,對應的是本月的第幾周.演算法 1 m x年y月1日前空著的天數。比如,用windows看今天是2008年9月12日,本月1日前空著1天,所以m 1。2 w x年y月z日是y月的第w周。x 2008 y 9 z 12 m date n s...

sql計算某日期到當前日期的時間間距

這裡用到了sql語句中的timestampdiff 單位,開始時間,結束時間 函式 其中單位可以為 1 year 年 2 quarter 季度 3 month 月 4 week 星期 5 day 天 6 hour 小時 7 minute 分鐘 8 second 秒 9 frac second 毫秒 ...

查詢某個月或某日的記錄

以前總是覺得,寫程式重要的是思路,一些小細節上的東西不用太過於在意,用的時候一查幫助就出來了,實際上這也是可行,只是有些東西,總是找了忘,忘了再找.實在太不方便了,所以現在想想應該把小的東西也記錄下來,以後用的時候也方便.那就從今天遇到的乙個小問題開始吧,如果資料庫中有乙個欄位中是時間,我要查詢某個...