您的位置:手机购彩平台 > 手机购彩软件-数据库 > 想查询截止到一年前当天24点之前的数据量

想查询截止到一年前当天24点之前的数据量

2020-04-05 09:58

问题:

在数据库编制程序开垦中,有的时候须要得到一年前的日子,以便以此为时间的分界点,查询其左右呼应的数据量。比方:

1. 想查询甘休到一年前当天0点事情未发生前的数据量,以至一年前当天0点初叶到现行反革命的数据量。2. 想询问甘休到一年前当天24点早前的数据量,以致一年前当天24点带头到前几天的数据量。3. 想询问甘休到一年前前段时期1日0点早前的数据量,以致一年前下个月1日0点起来到现行反革命的数据量。4. 想询问甘休到一年前下个月最终一天24点以前的数据量,以致一年前上月最终一天24点从前到昨日的数据量。

如上那各类意况的如闻其声查询现象,有archive数据脚本开拓在此以前对数据库数据量的分布意况开展总结等,也可以有依照当前几天子动态总括一年来的增量增幅情状等。

假定老是接到那样的急需必要得到一年前几日期,然后每一遍重复寻思怎么去贯彻自然是不明智的,恐怕说集团内已经有人写了剧本达成,但别的同事境遇同样的标题,又再度考虑贰次,那样就相比浪费时间和生命力,耗在这里个细节上有个别如火如荼,有一点像要做饭可是没有米将要先去买米的以为,而且便于形成区别人写的剧本不归总,不便利代码标准化标准化的法规,分化的人跟进的时候还要去酌量此前的人写的是怎样逻辑。何况再也开采脚本的话,又要求重新开展自测,不便利提升级程序员作作用。

施工方案:

先是简要介绍一下着力的知识点:

getdate(卡塔尔是赢稳妥前几天子;dateadd能够对日期进行增减,在这里处用来对年度减少1,也足以用来对月份扩大1;convert能够对日期举行字符串截取转变操作,在此边能够只截取形如2019-07-17的年月日,也得以只截取形如2019-07的时间部分。

下一场正是本着地点4个难题对应的4个缓和方式:

  1. 最简便,对眼几天前期实行压缩1年的运算,然后只截取年月日。2. 先对当下日子举行追加1天的运算,然后再减少1年,最终只截取年月日。3. 先对现阶段日子实行截取年月操作,然后再钦赐为前一个月01日,再减去1年,最终只截取年月日。4. 先对眼今日期进行截取年月操作,然后再钦点为下个月01日,再减少1年,并丰盛1个月,末了只截取年月日。

最终就能够一向在询问脚本准则中选取那些时间节点:

查询总计时间节点从前:select count(*) from 表 where 时间字段 @datePoint

查询总计时间节点开始到现行反革命:select count(*) from 表 where 时间字段 = @datePoint

脚本:

/* 功能:获取一年前日期 作者:zhang502219048 脚本来源:*/--1.截止到一年前当天0点declare @datePoint datetime = convert(varchar(10), dateadd(year, -1, getdate()), 120)select @datePoint as DatePointgo--2.截止到一年前当天24点declare @datePoint datetime = convert(varchar(10), dateadd(year, -1, dateadd(day, 1, getdate())), 120)select @datePoint as DatePointgo--3.截止到一年前当月1日0点declare @datePoint datetime = convert(varchar(10), dateadd(year, -1, convert(varchar(7), getdate(), 120) + '-01'), 120)select @datePoint as DatePointgo--4.截止到一年前当月最后一天24点declare @datePoint datetime = convert(varchar(10), dateadd(month, 1, dateadd(year, -1, convert(varchar(7), getdate(), 120) + '-01')), 120)select @datePoint as DatePointgo

本子运行结果:

总结

如上所述是作者给大家介绍的sql server编写通用脚本完成获取一年后天期的措施,希望对我们全数助于,要是大家有任何疑问请给本身留言,作者会及时恢复生机大家的。在这里也特别感激大家对台本之家网址的支撑!借让你以为本文对你有帮带,款待转发,烦请证明出处,谢谢!

本文由手机购彩平台发布于手机购彩软件-数据库,转载请注明出处:想查询截止到一年前当天24点之前的数据量

关键词: