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号的数据