问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL语句有点小小问题

发布网友 发布时间:2022-04-07 19:49

我来回答

3个回答

热心网友 时间:2022-04-07 21:19

简单说几天内过生日的记录,比较的是月年日并要考虑跨年跨月的情况我写过一个过程这不是一个小问题,你得加分了

找出连续几天内过生日的人(MSSqlServer)

create table userinfo
(
Id int,
NickName nvarchar(15),
Age int,
Sex bit,
QQ nvarchar(15),
Birthday datetime,
Email nvarchar(15),
MobilePhone nvarchar(15),
Address nvarchar(15),
HomeTown nvarchar(15)
)

go

CREATE PROC PRO_BIRTHDAY
@DAYCOUNT INT --语句中包含的天数这是一个带参数的存储存过程
AS
DECLARE @CONDITION VARCHAR(1000)--用来拼接where后的条件
DECLARE @I INT--用来控制循环次的的变量
DECLARE @STRSQL VARCHAR(5000)--最后用来执行查询的语句
SET @STRSQL='SELECT * FROM USERINFO WHERE '--查询语句的开始部分

SET @CONDITION=+' CONVERT(VARCHAR(5),BIRTHDAY,110)='+CHAR(39)+ CONVERT(VARCHAR(5),GETDATE(),110) +CHAR(39) --当参数就于等于1时只拼接一天
SET @I=1
WHILE @I<@DAYCOUNT--这里循环只执行一参数减1那么多次因为这里用的是<号
BEGIN
SET @CONDITION=@CONDITION +' OR CONVERT(VARCHAR(5),BIRTHDAY,110)='+CHAR(39)+ CONVERT(VARCHAR(5),GETDATE()+@I,110)+CHAR(39)
SET @I=@I+1--每次加一用来改变所加的天数和控制循环
END
SET @STRSQL=@STRSQL+@CONDITION--把语句和条件拼在一起
--PRINT @STRSQL--打开此处可查看本次执行的语句
EXEC (@STRSQL)--执行语句

GO
--调用存储过程
PRO_BIRTHDAY 7
--删除存储过程(可以不写这句)
DROP PROC PRO_BIRTHDAY
--convert函数把日期转成字符有多种形式本例中用的就是只取日期中的月和日,
--利用了日加一的办法解决了求明天是哪一天的问题,在此题中其实我们最关心的就是下一天的月和日分别是什么
--日加一再用convert将其取出就恰好巧妙的解决的明天(下一天)的月和日分别是什么的问题

最后会跟据当前时间拼出如下语句

SELECT *
FROM userinfo
WHERE convert(VARCHAR(5), birthday, 110) = '02-27'
OR convert(VARCHAR(5), birthday, 110) = '02-28'
OR convert(VARCHAR(5), birthday, 110) = '03-01'
OR convert(VARCHAR(5), birthday, 110) = '03-02'
OR convert(VARCHAR(5), birthday, 110) = '03-03'
OR convert(VARCHAR(5), birthday, 110) = '03-04'
OR convert(VARCHAR(5), birthday, 110) = '03-05'

热心网友 时间:2022-04-07 22:37

select * From users
where (DATEDIFF(DAY,getdate(),cast(stuff(convert(varchar(10),Birth,120),1,4,'2008') as datetime))<5
and DATEDIFF(DAY,getdate(),cast(stuff(convert(varchar(10),Birth,120),1,4,'2008') as datetime))>-1) 看行不

热心网友 时间:2022-04-08 00:11

select * From users where (DATEDIFF(DAY,Birth,getdate())<5 and DATEDIFF(DAY,Birth,getdate())>-1)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航用电脑软件哪个好导航软件哪个最准确 我要地图网使用我要地图网轻松查询地图信息 装配行业MES系统四大车间管理活动介绍 王者荣耀S14狂铁怎么玩_王者荣耀S14狂铁出装铭文推荐 沅陵县有姓文的分布在那个地方, 汨罗一中在省排名 汨罗高中有哪些? 湖南省岳阳市汨罗有哪些高中 新生儿脊膜膨出后遗症 在深圳硬脊膜膨出手术后大小便失禁怎么办? 新手app store里怎么找不到谷歌浏览器 苹果手机不能用Chrome浏览器么?用不了,搜索什么都不打不开。是系统问题么? 没有意思,一点意思都没有 形容积极向上不断创新的词语(2个字)有哪些?请赐教 觉得做人没意思、怎么办 求积极向上的二字词语 比如 执着 坚持 幸福 信念 越多越好! 为什么我会觉得什么都没意思? 为什么APP STORE 搜索不到谷歌浏览器 求两个字的词语 积极向上的词语 好听点的 多来一些 我要做店名 为什么老觉得没意思 积极向上的意思的二字词语 关于积极向上的词语,最好三字,四字和二字也可以。 感觉一切没意思的说说 积极向上的二字词语 想要一个青春的充满活力积极向上而又富有诗意的二字词语,谢谢! 女朋友说和我在一起没意思,怎么办? 梦见大河有浪,水清 终未意思是什么?清楚点谢谢 形容人才济济,全面发展,积极向上的两个字词语有哪些 可以两个字的词语,形容积极向上的心态 各种各样的计算器有什么共同点? 各种计算器的最基本的功能是什么? 如何挑选盖革计数器? 《千古玦尘》新角色上线,备受清穆后池喜爱,原来是月弥转世,你怎么看? 千古玦尘中月弥的实力如何? 《千古玦尘》中月弥最后复活了吗? 《叛逆者》天启月弥结局是什么? 千古玦尘中月弥在神界的地位如何? 《千古玦尘》中芜浣害死月弥,月弥的死对天启造成了怎样的打击? 星零写的《上古》大结局是什么,最好复制给我。 千古玦尘中月弥将姻缘绳丢在了谁的身上? 月弥与四大真神关系 千古玦尘中雪迎早神界的地位如何? 千古玦尘中红日在神界的地位如何? vivoz3i怎么搞otg vivoz3i能不能开OTG功能 vivoz3i支持OTG功能吗 太极符号是什么? 太极图案为什么是由黑白颜色组成的? 请问太极八卦符号都是什么?