SQL语句求当月的天数-急 select 当月天数=day(dateadd(month,1,getdate()-day(getdate())+1)-1) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 print datediff(dd,'2004-02-01','2004-03-01')用这个月的第一天,和下个月的第一天比较就可以了 select 当月天数=datediff(day,getdate(),dateadd(month,1,getdate())) select 当月天数=datediff(day,getdate(),dateadd(month,1,getdate()))SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) as 当天的半夜SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) as 季度的第一天SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) as 一年的第一天SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) as 本周的星期一SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) as 一个月的第一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) as 上个月的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) as 去年的最后一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as 本月的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) as 本年的最后一天select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate()) ), 0) as 本月的第一个星期一 to: huwgao(小楼听雨) , mymaily2h(sun) 你们的都不严谨下面是运行结果当天 当月天数 ------------------------------------------------- ----------- 2004-01-31 11:36:10.920 29(所影响的行数为 1 行 你们的解决不了上月天数比本月天数多的问题. zjcxc(邹建) 的不仅可以解决这个,而且可以解决上月天数比本月少的情况. 不会把。--举例select top 12 identity(int,1,1)m into #t from syscolumnsselect 时间='2004-'+cast(m as varchar(2)) ,当月天数=datediff(day,'2004-'+cast(m as varchar(2))+'-1',dateadd(month,1,'2004-'+cast(m as varchar(2))+'-1'))from #tdrop table #t--返回(所影响的行数为 12 行)时间 当月天数 ------- ----------- 2004-1 312004-2 292004-3 312004-4 302004-5 312004-6 302004-7 312004-8 312004-9 302004-10 312004-11 302004-12 31 to徐:就是说1月31号当天用select 当月天数=datediff(day,getdate(),dateadd(month,1,getdate()))取的数据不对。 请帮忙把两条语句合并起来 SQL 2005卸载问题 检查两个表的差异 怎么在两个表之间建立check约束 关于连接LDAP 求教联表Count查询为没有记录时显示0【附例子】 召集方案_关于数据库问题的 一个1000个字符串的column算不算很大? 在线等待!!! 数据库设计高手请进来,高分请教 求助~~sql问题~~ smalldeer(晓露)进来一下
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) as 季度的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) as 一年的第一天
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) as 本周的星期一
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) as 一个月的第一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) as 上个月的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) as 去年的最后一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as 本月的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) as 本年的最后一天
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())
), 0) as 本月的第一个星期一
你们的都不严谨下面是运行结果当天 当月天数
------------------------------------------------- -----------
2004-01-31 11:36:10.920 29(所影响的行数为 1 行
zjcxc(邹建) 的不仅可以解决这个,而且可以解决上月天数比本月少的情况.
select top 12 identity(int,1,1)m into #t from syscolumns
select 时间='2004-'+cast(m as varchar(2))
,当月天数=datediff(day,'2004-'+cast(m as varchar(2))+'-1',dateadd(month,1,'2004-'+cast(m as varchar(2))+'-1'))
from #t
drop table #t--返回(所影响的行数为 12 行)时间 当月天数
------- -----------
2004-1 31
2004-2 29
2004-3 31
2004-4 30
2004-5 31
2004-6 30
2004-7 31
2004-8 31
2004-9 30
2004-10 31
2004-11 30
2004-12 31
就是说1月31号当天用
select 当月天数=datediff(day,getdate(),dateadd(month,1,getdate()))
取的数据不对。