1. 使用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())),'')
2. sql 怎麼求出 一個月 有幾天
具體方法如下:
--1.刪除測試用表
IF OBJECT_ID(N'Test', N'U') IS NOT NULL
DROP TABLE Test
--2.建立測試表,並填充測試數據
SELECT * INTO Test
FROM
(
SELECT CONVERT(DATETIME, '2008-1-1', 120) AS dt UNION ALL SELECT '2008-1-15' UNION ALL SELECT '2008-1-31'
UNION ALL SELECT '2008-2-1' UNION ALL SELECT '2008-2-15' UNION ALL SELECT '2008-2-29'
UNION ALL SELECT '2007-2-1' UNION ALL SELECT '2007-2-15' UNION ALL SELECT '2007-2-28'
UNION ALL SELECT '2007-4-1' UNION ALL SELECT '2007-4-15' UNION ALL SELECT '2007-4-30'
) T
--3.根據日期計算當月有多少天
SELECT *
--當月天數=32-[(上月最後最後一天+32天)的日期值]
--e.g. '2008-1':32-day('2008-2-1') '2008-2':32-day('2008-3-3')
, ds1=32-DAY(dt-DAY(dt)+32)
--當月天數=當月最後一天的日期值
--e.g. '2008-1':day('2008-1-31') '2008-2':day('2008-2-29')
, ds2=DAY(DATEADD(mm,1,dt)-DAY(DATEADD(mm,1,dt)))
, ds3=DAY(DATEADD(mm, MONTH(dt), dt-DATEPART(dy,dt)))
, ds4=DAY(DATEADD(d, -1, CONVERT(VARCHAR(8), DATEADD(m,1,dt), 120)+'01'))
--當月天數=本月一號到下月一號的天數差值
--e.g. datediff(d, '2008-1-1', '2008-2-1')
, ds5=DATEDIFF(d, DATEADD(dd,1-DAY(dt),dt), DATEADD(mm, 1, DATEADD(dd,1-DAY(dt),dt)))
, ds6=DATEDIFF(d, DATEADD(m, DATEDIFF(m, 0, dt), 0), DATEADD(m, datediff(m, 0, dt)+1, 0))
, ds7=DATEDIFF(d, CONVERT(VARCHAR(8), dt, 120)+'01', CONVERT(VARCHAR(8), DATEADD(m,1,dt), 120)+'01')
from Test
3. sql 計算一個月幾天
可以將年月組成一個月的第一天,再與下個月第一天比較差異天數
declare
@ym
varchar(6)
--年月
select
datediff(day,
cast(@ym+
'01'
as
datetime),dateadd(month,1,cast(@ym+
'01'
as
datetime))
)
4. 怎麼利用SQL語句計算某年某月有多少天
用SQL語句吧。先比較一下select max(date) from tablewhere date between "yyyy-mm-dd" and "yyyy-mm-dd"先把上個月的最大值拿出來,然後再用當前的值跟它比較。其實就是統計當前資料庫中的最新插入數據的日期。select top 1 from tableorde by data desc這樣就把資料庫中的日期欄位按降序,排出來,而top1會把最頂上,也就是最大的值拿出來。拿出來了,就可以算了。用最新的那個日期減去上個月的。如果值等於月份天數。就說明夠一個月了。再按照你自己的算錢的方法來算吧!
5. SQL語句獲取一個月有多少天,只要求有一個變數
做一個數拍函數
uf_DaysOfMonth(@date)
1、將@date截取到月初薯嫌羨
2、@date2 = DateAdd(m, 1, @date) --設置下月初
3、用函數DateDiff(dd, @date, @date2)計者慧算二者間的天數
此即為該月的天數
6. 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替換即可。
結果截圖:
7. sql求當月有多少天
SELECTDAY(DATEADD(DAY,-1,DATEADD(M,1,DATEADD(DAY,-DAY(GETDATE())+1,GETDATE()))))*24
sql server 寫法。
8. mysql 編寫sql語句去獲取某個月中除了周末的天數。
每個月的天數是固定的--(閏年和平年也要考慮:平年365天,閏年366天。)
那麼每個月周末的天數也是固定的。
例如:
1月
周末占
9天
2月
周末占
8天(這是平年)
3月
周末占
。。。等等
然後,你輸入一個:月份。
例如:輸入1
計算:拿1月的天數(31)-9
輸出結果:22天
9. sql 怎麼查詢當前月份的所有天數
select * from 表名 where datepart(dd,時間欄位)=要查詢日期的天數 and
datepart(mm,時間欄位)=要查詢的月份
例如有個表t_cp 時間欄位stime
select * from t_cp where datepart(dd,stime)=5 and datepart(mm,stime)=8
查詢這個表中,8月5號的數據