sqlserver 我想取:指定起始日期和结束日期 取出从起始日期开始到结束日期每天21:30-第二天6:50的数据

sqlserver我想取:指定起始日期和结束日期取出从起始日期开始到结束日期每天21:30-第二天6:50的数据这个怎么写很急... sqlserver 我想取:指定起始日期和结束日期 取出从起始日期开始到结束日期每天21:30-第二天6:50的数据 这个怎么写 很急 展开
 我来答
a5987655
2016-12-06 · TA获得超过277个赞
知道小有建树答主
回答量:124
采纳率:66%
帮助的人:137万
展开全部
  1. 指定日期就不用说了吧?

  2. 解决问题自己要记得换一种方式思考,不要把自己固定死了,时间是晚上9点半到早上6点50之间的需要,也就是说其他的不需要;可以使用排除法将早上6点50之后到晚上9点半之前的排除出去不就行了;

正向思维demo代码:

select * from sell_orders
where convert(varchar(10),sellsdate,102) between '2016.10.10' and '2016.10.31'
and (convert(varchar(10),sellsdate,108) between '21:30:00' and '23:59:59'
or convert(varchar(10),sellsdate,108) between '00:00:00' and '06:50:00')

反向思维demo代码:

select * from sell_orders
where convert(varchar(10),sellsdate,102) between '2016.10.10' and '2016.10.31'
and not (convert(varchar(10),sellsdate,108) between '06:50:01' and '21:30:01')

追问
嗯嗯谢谢了兄弟 这个我能写出来 我想要的是:第一天21:30~第二天6:50作为一组算作第一天的销售  而不是第一天0:00~6:50加上第一天21:30~23:59:59算作第一天  这个分组应该是按什么分组呢     最后的结果就是:第一天的总销售额(第一天21:30~第二天6:50的总销售额)、第二天的总销售额(第二天21:30~第三天6:50的总销售额)……
追答
那你就编个号来分组,然后把对应时间的数据存到一个临时表里,做法也简单,做个存储过程,传入开始日期,然后直接返回开始日期当天的21:30到0点的数据和第二天的0点到6点50的数据就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式