加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer数据库中获取每月第一天和最后天的方法以及扩展

发布时间:2020-12-12 12:44:41 所属栏目:MsSql教程 来源:网络整理
导读:今天在做开发的时候碰到了一个问题,需求是这样的:根据年份以及月份两个信息来获取数据库中的相应的所有订单概要,那么问题来了,数据库中的日期格式是datetime,而且数据库中的数据是用getdate函数得来的,也就是说是带着时间的,并不是单纯的日期,而从网

今天在做开发的时候碰到了一个问题,需求是这样的:根据年份以及月份两个信息来获取数据库中的相应的所有订单概要,那么问题来了,数据库中的日期格式是datetime,而且数据库中的数据是用getdate函数得来的,也就是说是带着时间的,并不是单纯的日期,而从网页上的表单中获取的年份和月份只是两个数字,怎么在数据库中操纵这两个数字类型的变量来查询到当月的所有订单呢?

刚开始碰到这个问题的时候,我的第一个想法就是用模糊查询,将从网页上获取的年份和月份拼成一个字符串,然后利用模糊查询来进行查找,后来发现这样是行不通的,因为将年份和月份拼接起来的时候是一个字符串,在字符串后加正则表达式再进行查询是不管用的,因为查询日期同样也需要一个date类型的变量,所以并不能进行成功的查询,后来通过查阅网上的一些资料,终于找到了解决办法,下面先说最简单也是符合常规的思维习惯的方法:

<span style="font-size:14px;">@year varchar(4),@month varchar(2)

declare @str varchar(10) --声明一个字符串用来拼接
declare @firstDay smalldatetime
declare @lastDay smalldatetime
 set @str=@year+'-'+@month+'-1' --将@str拼接成当月的第一天的字符串型形式
--将其转换成smalldatetime类型就可以得到月份的第一天
@firstDay=convert(smalldatetime,@str)
--得到月份的第一天就可以利用函数来获得月份的最后一天
@lastDay=dateadd(d,-1,dateadd(m,1,@firstDay))</span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读