DECLARE @DATE DATETIME
SET @DATE='2007-02-02'
SELECT DATEDIFF(DAY,@DATE,DATEADD(MONTH,1,@DATE))
原理:本月的今天到下月的今天就是本月的天数,比楼上的都简单,:),LZ自己可以试试
B. sql 计算一个月几天
可以将年月组成一个月的第一天,再与下个月第一天比较差异天数
declare
@ym
varchar(6)
--年月
select
datediff(day,
cast(@ym+
'01'
as
datetime),dateadd(month,1,cast(@ym+
'01'
as
datetime))
)
C. 怎么利用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会把最顶上,也就是最大的值拿出来。拿出来了,就可以算了。用最新的那个日期减去上个月的。如果值等于月份天数。就说明够一个月了。再按照你自己的算钱的方法来算吧!
D. SQL语句:已知年,计算本年内所有月的天数(要验证是否闰年)
可以考虑使用DATEDIFF函数,select DATEDIFF(day,'2008-12-31','2007-12-31') declare @n intdeclare @day intset @n='2010'select @day= DATEDIFF(day, cast((@n-1) as varchar(10))+'-12-31',cast(@n as varchar(10))+'-12-31')
select @day
E. 求1年(或月)有多少天的SQL语句怎么写
以下是以取当前系统时间为例求一个月有多少天
分为31天、30天和润年非闰年的2月的判断
年同理分为润年的366和非闰年的365
判断同理不再写出来
print
case
when SUBSTRING (left(GETUTCDATE(),10),1,2) in (1,3,5,7,8,10,12) then '31天'
when SUBSTRING (left(GETUTCDATE(),10),1,2) in (4,6,9,11) then '30天'
when SUBSTRING (left(GETUTCDATE(),10),1,2) = 2 and (right(left(GETUTCDATE(),10),4)%4=0 and right(left(GETUTCDATE(),10),4)%100<>0 or right(left(GETUTCDATE(),10),4)%400=0) then '29天' else '28天'
end
每个人都不同
我没有去过论坛
我只是看了一个电子文档
你要是要的话
可以晚上9点到10点(我的一般在线时间)之间pm我
我传你
F. 使用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())),'')
G. sql语句根据年月获取该月有几天
--获得当月天数
select
day(dateadd(mm,1,getdate())-day(getdate()))
as
本月天数
;
select
getdate()
as
当前日期;
select
day(getdate())
as
目前第几天;
select
getdate()-day(getdate())
as
上个月最后一天;
--
减去了当前的天数
select
dateadd(mm,1,getdate())-day(getdate())
as
加上一个月;
--
也就是这个月的最后一天
select
day(dateadd(mm,1,getdate())-day(getdate()))
as
获得当月天数;