『壹』 sql server 怎麼獲取指定月的天數
一、新建SQL查詢測試
登錄SQL Server2008,新建一個查詢窗口,輸入:select 1,執行,若輸出1,則資料庫檢測正常。如圖:
二、SQL獲取當前日期
在查詢窗口中輸入:Select getdate()並選中,單擊執行或按F5,檢測當地時間是否准確。如圖:
注意:選中單條執行操作是卻別與其他查詢。
三、SQL獲取當前月份的天數
從步驟二中,檢測到時間正確,當前為11月,那當前月的天數應該是30天;
輸入:SELECT 32-DAY(getdate()+32-DAY(getdate())) ,選中並執行,查看輸出結果。如圖:
四、SQL獲取當前月的最後一天
這種方法可以准確的看到當前月份是11月,最後一天是11月30日;
輸入:select datediff(mm,0,getdate()),選中,執行,查看輸出結果,如圖:
五、獲取當前月第一天日期
輸入查詢語句:select dateadd(mm,datediff(mm,0,getdate()),0),選中,執行,查看輸出結果。如圖:
六、獲取下月第一天的日期
輸入SQL查詢:select dateadd(mm,datediff(mm,0,getdate())+1,0),選中,執行,查看輸出結果。如圖:
七、獲取本月最後一天的日
輸入SQL查詢:select day(dateadd(mm,datediff(mm,0,getdate())+1,0)-1),選中,執行,查看結果。如圖:
八、獲取指定年份指定月份的天數
輸入SQL查詢語句:
declare @年月 varchar(6) set @年月= '201502' --查詢2015年2月有多少天 select day(dateadd(month,1,@年月+ '01 ')-1)
選中,執行,查看結果是不是為28?如圖:
『貳』 sqlserver用sql語句怎麼返回一個月所有的天數。
可用如下sql語句:
selectconvert(varchar(10),dateadd(DAY,t2.number,t1.day),120)dayfrom
(select'2015-07'+'-01'day)t1,
(selectnumberfromMASTER..spt_valuesWHERETYPE='P'ANDnumber>=0andnumber<=31)t2
whereconvert(varchar(10),dateadd(DAY,t2.number,t1.day),120)like'2015-07%'
說明:要查詢某年某月,只許將語句中的2015-07替換即可。
結果截圖:
『叄』 sql中該如何算成倆個時間之間的天數
解決方案:
使用兩個內聯視圖求WARD和ALLEN的HIREDATE(聘用日期)。然後使用DAYS 函數從一個HIREDATE中減去另一個HIREDATE:
select days(ward_hd) - days(allen_hd)
from (
select hiredate as ward_hd
from emp
where ename = 'WARD'
) x,
select hiredate as allen_hd
from emp
where ename = 'ALLEN'
) y
Oracle和PostgreSQL
使用兩個內聯視圖求WARD和ALLEN的HIREDATE(聘用日期)。然後從一個日期中減去另一個日期:
select ward_hd - allen_hd
from (
select hiredate as ward_hd
from emp
where ename = 'WARD'
) x,
(
select hiredate as allen_hd
from emp
where ename = 'ALLEN'
) y
『肆』 sql 怎麼計算兩個時間的天數
select datediff(part,StartDate,EndDate)
part:日期的哪一部分計算差額的參數
StartDate:開始時間
EndDate:截至時間
如:select datediff(dd,'2010-09-20','2010-09-21')
結果:1
即兩個日期相差1天;
select datediff(mm,'2010-09-20','2010-09-21')
結果:0
即兩個日期都是同月。
『伍』 sql 計算一個月幾天
使用 datediff 來獲取兩個時間差:
如語句:
select datediff(day,"2015-2-1","2015-3-1")
返回2105年2月份共 28 天
DATEDIFF 函數 [日期和時間]
功能 返回兩個日期之間的間隔。
語法 DATEDIFF ( date-part, date-expression-1, date-expression-2 )
date-part : year | quarter | month | week | day | hour | minute | second | millisecond
參數 date-part 指定要測量其間隔的日期部分。
有關日期部分的詳細信息,請參見日期部分。
date-expression-1 某一間隔的起始日期。從 date-expression-2 中減去該值,返回兩個參數之間 date-parts 的天數。
date-expression-2 某一間隔的結束日期。從該值中減去 Date-expression-1,返回兩個參數之間 date-parts 的天數。
用法 此函數計算兩個指定日期之間日期部分的數目。結果為日期部分中等於(date2 - date1)的有符號的整數值。
當結果不是日期部分的偶數倍時,DATEDIFF 將被截斷而不是被舍入。
當使用 day 作為日期部分時,DATEDIFF 返回兩個指定的時間之間(包括第二個日期但不包括第一個日期)的午夜數。
當使用 month 作為日期部分時,DATEDIFF 返回兩個日期之間(包括第二個日期但不包括第一個日期)出現的月的第一天的數目。
當使用 week 作為日期部分時,DATEDIFF 返回兩個日期(包括第二個日期但不包括第一個日期)之間星期日的數目。
對於更小的時間單位存在溢出值:
milliseconds 24 天
seconds 68 年
minutes 4083 年
others 沒有溢出限制
如果超出這些限制,此函數將返回溢出錯誤。
標准和兼容性 SQL/92 Transact-SQL 擴展。
SQL/99 Transact-SQL 擴展。
Sybase 與 Adaptive Server Enterprise 兼容。
下面示例的語句返回 1: SELECT datediff( hour, '4:00AM', '5:50AM' )
下面的語句返回 102: SELECT datediff( month, '1987/05/02', '1995/11/15' )
下面的語句返回 0: SELECT datediff( day, '00:00', '23:59' )
下面的語句返回 4: SELECT datediff( day,'1999/07/19 00:00','1999/07/23 23:59' )
下面的語句返回 0: SELECT datediff( month, '1999/07/19', '1999/07/23' )
下面的語句返回 1: SELECT datediff( month, '1999/07/19', '1999/08/23' )
『陸』 使用SQL語句取相關日期(當月天數,當月第一天,當月最後一天,本年最後一天,當月第一個星期)
當月天數
selectday(dateadd(ms,-3,DATEADD(m,DATEDIFF(m,0,getdate())+1,0)))
當月第一天
selectdateadd(d,-day(getdate())+1,getdate())
當月最後一天
selectdateadd(d,-day(getdate()),dateadd(m,1,getdate()))
本年最後一天
selectdateadd(d,-day(getdate()),dateadd(m,12,getdate()))
當月第一個星期一
SELECTDATEADD(wk,DATEDIFF(wk,'',DATEADD(dd,6-DAY(getdate()),getdate())),'')
『柒』 sql 怎麼查詢當前月份的所有天數
select
*
from
表
where
datediff(day,日期段,getdate())<=15
上面這個是查詢15天內的信息
『捌』 sql語句中可以查詢兩個日期之間的天數么
select datediff('2009-1-1', '2008-1-1');
用datediff函數,第一個參數是截止時間,第二個參數是起始時間
不好意思,剛才的是mysql,剛看了下sql的文檔發現有點區別- -,sql的話,用下面的形式:
DATEDIFF ( datepart , startdate , enddate )
所以你要求2個日期之間間隔的天數,這樣寫:
datediff( dd, '2008/1/1', '2009/1/2' )
這里的dd表示計算天數差
『玖』 sqlserver獲取最近六個月天數總和,例如現在是八月份,我要獲取2-7月份天數總和
declare
@Interval int, --間隔天數
@BeginDate DateTime, --開始時間
@EndDate DateTime --結束時間
begin
set @BeginDate = DATEADD(day,-DAY(DATEADD(MONTH,-6,GETDATE()))+1,DATEADD(MONTH,-6,GETDATE()))
set @EndDate = EOMONTH(DATEADD(MONTH,-1,GETDATE()))
set @Interval = DATEDIFF(day,@BeginDate,@EndDate)
select @Interval
end
『拾』 mysql 編寫sql語句去獲取某個月中除了周末的天數。
每個月的天數是固定的--(閏年和平年也要考慮:平年365天,閏年366天。)
那麼每個月周末的天數也是固定的。
例如:
1月
周末占
9天
2月
周末占
8天(這是平年)
3月
周末占
。。。等等
然後,你輸入一個:月份。
例如:輸入1
計算:拿1月的天數(31)-9
輸出結果:22天