如何利用SQL語句計算某年某月有多少天

2021-08-31 05:20:32 字數 932 閱讀 4062

在參加的乙個面試時被問到乙個問題:如何利用sql語句計算2023年的2月份有多少天?

首先想到的思路就是判斷2036是閏年還是平年,然後可以判斷2月份有多少天,利用下面方法判斷平年還是閏年:

(1)年份能被4整除;

(2)年份若是100的整數倍的話,需被400整除,否則是平年。

既然被問到要用sql計算,現在的方法是沒有用到任何sql,於是學習了下sql的方法:

第一種可以利用sql的「datediff」來計算:

select datediff(day,'2036-2-1','2036-3-1') as diffdate

,計算結果是29

第二種利用異常來判斷:

執行

select * from orders where orderdate='2035-2-29'

編譯器會報錯,如下:「伺服器: 訊息 242,級別 16,狀態 3,行 1從 char 資料型別到 datetime 資料型別的轉換導致 datetime 值越界。」因此不是2035-2-29是不合法的,那麼再試一下2036-2-29:沒有報異常,說明是合法的,那麼就是29天了。

第三種利用dateadd來計算:

declare @temp datetime

set @temp = '2036-3-1'

select @temp

select dateadd(d,-1, @temp)

查詢的結果是:

2036-02-29 00:00:00.000

以上是三種計算的方法,對於這個問題最重要的是要結合sql語言來計算,在sql中提供了多種計算時間的函式,包括datediff、dateadd等函式。

C switch語句 判斷某年某月有幾天

switch語句是多分支選擇語句,用來實現多分支選擇結構,switcht的一般形式如下,和c語言基本上一樣,只是輸出語句不同。switch 表示式 switch後面的括號裡的表示式,原則上允許為任何型別,多個case可以共用一組執行語句。當swtich表示式的值與大括號裡面的某乙個case子句中的變...

計算某年某月某天是週幾

計算任意一天是週幾,我們用例題來說明 十三號星期五 十三號星期五真的很不常見嗎?每個月的十三號是星期五的頻率是否比一周中的其他幾天低?請編寫乙個程式,計算 n 年內每個月的 13 號是星期日,星期一,星期二,星期三,星期四,星期五和星期六的頻率。測試的時間段將會開始於 1900 年 1 月 1 日,...

計算某年某月某日是星期幾 Python

前提 公元1年1月1日是星期一def data y,m,d ans 0 month 31,29,31,30,31,30,31,31,30,31,30,31 if y 4 0 and y 100 0 or y 400 0 month 1 29 else month 1 28 for i in rang...