久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 SQL 中添加迄今為止的天數

Adding Days To Date in SQL(在 SQL 中添加迄今為止的天數)
本文介紹了在 SQL 中添加迄今為止的天數的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試從我的數據庫中獲取未來幾天即將出生的人的數據(提前聲明)它可以正常工作數天,但是如果我將 24 天添加到當前日期,則此查詢將不起作用,因為它需要在月份中進行更改.我想知道我該怎么做

I am trying to get data from my Database of those who have upcoming birth days in next few days(declared earlier) it's working fine for days but this query will not work if i add 24 days to current date cause than it will need change in month. i wonder how can i do it

    declare @date int=10,
@month int=0
select * from STUDENT_INFO where DATEPART(DD,STDNT_DOB) between 
DATEPART(DD,GETDATE()) and  DATEPART(DD,DATEADD(DD,@date,GETDATE()))
and
DATEPART(MM,STDNT_DOB) = DATEPART(MM,DATEADD(MM,@month,GETDATE()))

這個查詢工作正常,但它只檢查 8 & 之間的日期18

This query works fine but it only checks date between 8 & 18

但是如果我像這樣使用它

but if i use it like this

declare @date int=30,
@month int=0
select * from STUDENT_INFO where DATEPART(DD,STDNT_DOB) between 
DATEPART(DD,GETDATE()) and  DATEPART(DD,DATEADD(DD,@date,GETDATE()))
and
DATEPART(MM,STDNT_DOB) = DATEPART(MM,DATEADD(MM,@month,GETDATE()))

它不會返回任何東西,因為它也需要在月份添加

it will return nothing since it require addition in month as well

如果我這樣使用

declare @date int=40,
@month int=0
select * from STUDENT_INFO where DATEPART(DD,STDNT_DOB) between 
DATEPART(DD,GETDATE()) and  DATEADD(DD,@date,GETDATE())
and
DATEPART(MM,STDNT_DOB) = DATEPART(MM,DATEADD(MM,@month,GETDATE()))

它會在本月的最后一天返回結果,但直到 18/12 才會顯示這是必需的

than it will return results till the last of this month but will not show till 18/12 which was required

推薦答案

這里有一個簡單的解決方法:

Here is a simple way to solve it:

DECLARE @date int = 10
;WITH cte as
(
SELECT cast(getdate() as date) fromdate, 
cast(getdate() as date) todate,
1 loop
UNION ALL
SELECT cast(dateadd(year, -loop, getdate()) as date), 
cast(dateadd(year, -loop, getdate())+@date as date),
loop+1
FROM cte
WHERE loop < 200 -- go back 200 years 
                 -- (should be enough unless you are a turtle)
)
SELECT dob, name, datediff(year, dob, getdate()) will_turn 
FROM cte
JOIN (values(cast('1968-11-11' as date), 'Jack'), 
            (cast('1984-11-12' as date), 'Jill'), 
            (cast('1984-11-13' as date), 'Hans'), 
            (cast('1984-11-21' as date), 'Gretchen'), 
            (cast('1884-11-22' as date), 'Snowwhite')) x(dob, name)
ON dob BETWEEN fromdate and todate
OPTION (maxrecursion 300)

返回:

dob name    name     will_turn
1984-11-12  Jill     29
1984-11-13  Hans     29
1984-11-21  Gretchen 29
1968-11-11  Jack     45

這篇關于在 SQL 中添加迄今為止的天數的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 在线欧美小视频 | av一级一片 | 欧美日韩精品中文字幕 | 韩国精品在线观看 | 欧美视频1区| 日韩国产高清在线观看 | 欧美片网站免费 | 99热.com| 国产精品美女久久久久aⅴ国产馆 | 久久久高清 | 午夜爽爽爽男女免费观看影院 | 热99在线 | 青青草综合 | 国产精品免费在线 | 亚洲精品电影在线观看 | 日韩国产精品一区二区三区 | 国产高清一区二区 | 久久99精品久久久 | 久草福利 | 美女一级a毛片免费观看97 | 色嗨嗨 | 日韩av在线一区 | 久久性色 | 久久精品国产亚洲一区二区 | 国产成人精品综合 | www.中文字幕.com | 淫片专区| 国精品一区 | 男女羞羞的网站 | 免费在线a视频 | 精品国产91亚洲一区二区三区www | 99精品网 | 热久久免费视频 | 成人午夜黄色 | 日韩一区二区福利视频 | 欧美精品成人影院 | 国产欧美日韩在线 | 夜夜骚| 久久久久久国产精品免费免费狐狸 | 337p日本欧洲亚洲大胆鲁鲁 | 中文字字幕一区二区三区四区五区 |