在SqlServer中求日期月份的天數

2021-08-07 15:22:09 字數 700 閱讀 5942

**如下:

輸出:31

基本思路:要求乙個月的天數,先獲得這個月的年份和月份,在月份上加1,然後將年份、月份和「-01」進行拼接,求出下個月第一天的日期;然後在該日期上 -1,得到本月最後一天的日期;最有通過day(),求得最後一天日期的天對應的數字,該數字即為本月的天數。

一下看這個**似乎有點暈,我們來分解一下這個**:

最裡面的**

64行為求改天在本月中的第幾天;

65行結合70行為將cast中的字串轉化為datetime型別;

66行通過字串擷取求得本月的所在的年份,如:「2017-」;

67行、68行求得本月的下個月月份,在將本月加一得到下個月時,如果是13,則表示當前為12月,下月應為1月;

69行,下個月第一天;

66-67-68-69一起講年-月-日拼接起來,並通過cast轉化為datetime;

71進行減1操作,得到本月最後一天的日期,最後day函式求得本月天數;

sql server中的日期函式

常用函式 當前日期 select getdate 2018 12 06 10 13 44.840 select convert varchar 10 getdate 120 2018 12 06 select convert varchar 8 getdate 114 10 14 06 select...

SQL Server中的日期型別

1。中文版預設的格式是這樣的 yyyy mm dd thh mm ss.mmm,即在資料庫裡真正存放的格式 2。安裝時可以指定 3。在驗證使用者輸入的時候會有一些內建規則來確保輸入的是正確的日期 具體說,以下都是可以接受的 在sql server 2005時,實際上會由net clr來檢查 mm d...

在SQLserver中如何獲得兩個日期相減的天數

datediff 返回跨兩個指定日期的日期和時間邊界數。語法datediff datepart startdate enddate 引數datepart 是規定了應在日期的哪一部分計算差額的引數。下表列出了 microsoft sql server 識別的日期部分和縮寫。日期部分 縮寫 year y...