今天面试题目 select DATEDIFF(dd,getdate(),dateadd(mm,1,getdate())) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Select DATEPART(MM, GETDATE()) 不应该在sql里获取当前月份天数,浪费资源!应该直接在代码里实现! select DateDiff(dd,dateadd(mm,1,getDate()),getDate())-31 select DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))经典 select DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))相当经典 我的思路是:当前月之下个月第一天的前一天的日期值即可当前月的天数。declare @dt datetimeset @dt = getdate()select datepart(dd, dateadd(dd, -datepart(dd, dateadd(mm, 1, @dt)), dateadd(mm, 1, @dt)))select datepart(dd, dateadd(dd, -1, cast(datepart(yy, @dt) as varchar) + '-' + cast((datepart(mm, @dt) + 1) as varchar) + '-1')) set @dt = '2007-8-31'select datepart(dd, dateadd(dd, -datepart(dd, dateadd(mm, 1, @dt)), dateadd(mm, 1, @dt)))select datepart(dd, dateadd(dd, -1, cast(datepart(yy, @dt) as varchar) + '-' + cast((datepart(mm, @dt) + 1) as varchar) + '-1')) Select DATEPART(MM, GETDATE())我看我最多也就写到这,剩下的还需要看帮助文件 - -## select DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))这个的确不错 select datediff(dd,getdate(),dateadd(mm,1,getdate())) select datediff(dd,getdate(),dateadd(mm,1,getdate())) 行不通吧,比如当前时间是1月31 得到的就是28天了 SELECT DATEDIFF(dd, GETDATE(), DATEADD(m, 1, GETDATE())) 啊?出这问题 我到是还真弄不出来...慌了smile9961(good life) 向你学习了!代码考走了~~~嘿嘿我当时面试设计SQL的少,都是ASP.NET 比较熟悉~ select DATEDIFF(dd,'2007-1-31',dateadd(mm,1,'2007-1-31'))28 SELECT DATEDIFF(dd, GETDATE(), DATEADD(m, 1, GETDATE()))经典....可以正常获得 求出本月的最后一天就可以了select day(DateAdd(dd,-1,Convert(varchar(10),year(getdate())) + '/' + Convert(varchar(10),month(getdate())+1) + '/1')) 晕,仍然有人说这种算法“select datediff(dd, getdate(), dateadd(mm,1,getdate()))”好 !看看它的执行结果吧:select datediff(dd, '2007-08-30', dateadd(mm,1,'2007-08-30'))-----------31select datediff(dd, '2007-08-31', dateadd(mm,1,'2007-08-31'))-----------30 SELECT DATEDIFF(dd, DATEADD(dd, 1 - DATEPART(dd, GETDATE()), GETDATE()), DATEADD(mm, 1, DATEADD(dd, 1 - DATEPART(dd, GETDATE()), GETDATE()))) AS Expr1 select datediff(dd, '2007-08-30', dateadd(mm,1,'2007-08-30')) 是错的 select right(convert(varchar(10),dateadd(day,-1,convert(varchar(8),dateadd(month,1,getdate()),120)+'01'),120),2) 思路是:下个月的第一天减一天,就是这个月的最后一天。再用datediff求出,这个月的第一天到最后一天的相距天数 +1天因为每个月的第一天是可以确定的。 select datediff(dd,getdate(),dateadd(mm,1,getdate()))说这个好的刚好跳到出题人的陷阱里了用下个月的第一天减去本月第一天就可以了 当月第一天:select dateadd(dd,-day(getdate())+1,getdate()) 当月最后一天:select dateadd(dd,-day(getdate()),dateadd(m,1,getdate()))相减即可 select datediff(dd,getdate(),dateadd(mm,1,getdate())) 这样行不行?我的思路是从当前日期到下个月的今天之间的日期数 比如7月2号 到8月2号 之间的日期数 就是7月份的日期数 不知道是不是楼主所要的? select DATEDIFF(dd,dateadd(dd,1-datepart(dd,getdate()),getdate()),dateadd(mm,1,dateadd(dd,1-datepart(dd,getdate()),getdate()))) 使用函数dateadd()把一个日期加上一个月,这个函数只简单地把月份值加1。select DateDiff(dd,dateadd(mm,1,getDate()),getDate())明显是错的。考的就是这个。 我做的use pubsdeclare @dt datetimeset @dt='2005-11-4'select day( dateadd(day,-1,convert(char(8),dateadd(month,1,@dt),120)+'1')) 下月第一天 减去 一 得到 本月最后一天 用day函数 求解。 绝对正确select right(convert(varchar(10),dateadd(dd,-1,cast(convert(varchar(8),dateadd(mm,1,'2007-01-31'),120)+'01' as datetime)),120),2) 字符数截取 请问,这种路径书写方式如何实现的? 树形控件中的鼠标事件 有几行代码不甚理解,还望指教! 超郁闷!asp.net 2.0的TreeView在部分机器上不能正常显示,怎么办? 迷茫Ing…………发个帖子大家帮忙指点迷津啊 在一个aspx的页面里面用了将近10个dataset,会严重影响性能吗? 在datagrid中获得选中行的编号? 关于asp.net的版本问题 春节散分:祝学习进步,工作顺利,尤其在.Net 统计一下有多少人在用CuteEditor? 上传图片时出现Server Error in '/' Application
-31
经典
相当经典
select datepart(dd, dateadd(dd, -datepart(dd, dateadd(mm, 1, @dt)), dateadd(mm, 1, @dt)))
select datepart(dd, dateadd(dd, -1, cast(datepart(yy, @dt) as varchar) + '-' + cast((datepart(mm, @dt) + 1) as varchar) + '-1')) set @dt = '2007-8-31'
select datepart(dd, dateadd(dd, -datepart(dd, dateadd(mm, 1, @dt)), dateadd(mm, 1, @dt)))
select datepart(dd, dateadd(dd, -1, cast(datepart(yy, @dt) as varchar) + '-' + cast((datepart(mm, @dt) + 1) as varchar) + '-1'))
我看我最多也就写到这,剩下的还需要看帮助文件 - -##
这个的确不错
28
经典....可以正常获得
select day(DateAdd(dd,-1,Convert(varchar(10),year(getdate())) + '/' + Convert(varchar(10),month(getdate())+1) + '/1'))
select datediff(dd, '2007-08-30', dateadd(mm,1,'2007-08-30'))
-----------
31select datediff(dd, '2007-08-31', dateadd(mm,1,'2007-08-31'))
-----------
30
DATEADD(mm, 1, DATEADD(dd, 1 - DATEPART(dd, GETDATE()), GETDATE()))) AS Expr1
是错的
下个月的第一天减一天,就是这个月的最后一天。
再用datediff求出,这个月的第一天到最后一天的相距天数 +1天因为每个月的第一天是可以确定的。
当月最后一天:select dateadd(dd,-day(getdate()),dateadd(m,1,getdate()))
相减即可
我的思路是从当前日期到下个月的今天之间的日期数 比如7月2号 到8月2号 之间的日期数 就是7月份的日期数 不知道是不是楼主所要的?
考的就是这个。
use pubsdeclare @dt datetimeset @dt='2005-11-4'select day( dateadd(day,-1,convert(char(8),dateadd(month,1,@dt),120)+'1'))