有关SQL Server中有关周的数据查询主要思路来自下面这个语句

select getdate(), dateadd(wk, datediff(wk, 0, DateAdd(Day,-1,getdate())), 0), dateadd(wk, datediff(wk, 0, DateAdd(Day,-1,getdate())), 0) + 6

这是按照中国的习惯,将一周的第一天定为周一。

依照这个为基础,就可以轻松的找到本周和上一周的数据了。

本周示例

Select a.* , datediff(wk, 0, DateAdd(d,-1, a.OppDate)) From (
Select DATEADD(Day,-0,GetDate()) As OppDate Union All
Select DATEADD(Day,-1,GetDate()) As OppDate Union All
Select DATEADD(Day,-2,GetDate()) As OppDate Union All
Select DATEADD(Day,-3,GetDate()) As OppDate Union All
Select DATEADD(Day,-4,GetDate()) As OppDate Union All
Select DATEADD(Day,-5,GetDate()) As OppDate Union All
Select DATEADD(Day,-6,GetDate()) As OppDate Union All
Select DATEADD(Day,-7,GetDate()) As OppDate Union All
Select DATEADD(Day,-8,GetDate()) As OppDate Union All
Select DATEADD(Day,-9,GetDate()) As OppDate Union All
Select DATEADD(Day,-10,GetDate()) As OppDate Union All
Select DATEADD(Day,-11,GetDate()) As OppDate Union All
Select DATEADD(Day,-12,GetDate()) As OppDate Union All
Select DATEADD(Day,-13,GetDate()) As OppDate Union All
Select DATEADD(Day,-14,GetDate()) As OppDate Union All
Select DATEADD(Day,-15,GetDate()) As OppDate Union All
Select DATEADD(Day,-16,GetDate()) As OppDate Union All
Select DATEADD(Day,-17,GetDate()) As OppDate Union All
Select DATEADD(Day,-18,GetDate()) As OppDate Union All
Select DATEADD(Day,-19,GetDate()) As OppDate) As a
Where datediff(wk, 0, DateAdd(d,-1, a.OppDate)) = DATEDIFF(wk,0,DateAdd(d,-1,GetDate()))

上一周示例

Select a.* , datediff(wk, 0, DateAdd(d,-1, a.OppDate)) From (
Select DATEADD(Day,-0,GetDate()) As OppDate Union All
Select DATEADD(Day,-1,GetDate()) As OppDate Union All
Select DATEADD(Day,-2,GetDate()) As OppDate Union All
Select DATEADD(Day,-3,GetDate()) As OppDate Union All
Select DATEADD(Day,-4,GetDate()) As OppDate Union All
Select DATEADD(Day,-5,GetDate()) As OppDate Union All
Select DATEADD(Day,-6,GetDate()) As OppDate Union All
Select DATEADD(Day,-7,GetDate()) As OppDate Union All
Select DATEADD(Day,-8,GetDate()) As OppDate Union All
Select DATEADD(Day,-9,GetDate()) As OppDate Union All
Select DATEADD(Day,-10,GetDate()) As OppDate Union All
Select DATEADD(Day,-11,GetDate()) As OppDate Union All
Select DATEADD(Day,-12,GetDate()) As OppDate Union All
Select DATEADD(Day,-13,GetDate()) As OppDate Union All
Select DATEADD(Day,-14,GetDate()) As OppDate Union All
Select DATEADD(Day,-15,GetDate()) As OppDate Union All
Select DATEADD(Day,-16,GetDate()) As OppDate Union All
Select DATEADD(Day,-17,GetDate()) As OppDate Union All
Select DATEADD(Day,-18,GetDate()) As OppDate Union All
Select DATEADD(Day,-19,GetDate()) As OppDate) As a
Where datediff(wk, 0, DateAdd(d,-1, a.OppDate)) = DATEDIFF(wk,0,DateAdd(d,-1,GetDate())) - 1

SQL Server选取本周或上一周数据的更多相关文章

  1. Sqlserver语句获取本周、上一周、本月数据

    sql语句获取本周.上一周.本月数据 获取周数据 1 本周 2 select * from table1 where datediff(week,时间字段,getdate()) = 0 3 上周 4 ...

  2. SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录

    本文主要向大家介绍了SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. datediff(we ...

  3. SQL Server 无法在服务器上访问指定的路径或文件解决方法

    SQL Server 无法在服务器上访问指定的路径或文件解决方法 在SQL Server附加数据库或备份数据库时出现:无法在服务器上访问指定的路径或文件. 请确保您具有必需的安全权限且该路径或文件存在 ...

  4. SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)

    本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一.   创建Ubuntu系统(Create U ...

  5. 安装 sql server 2008出现重启电脑,另在server 2012 r2安装sql server 2008 安装不上

    时即使是进行电脑重启,也会报这个错误,那么就不是电脑的问题了,其实是系统注册表在作怪,解决方法如下: 1.开始-->运行,输入regedit,打开注册表管理器: 2. 找到 HKEY_LOCAL ...

  6. Configure Always On Availability Group for SQL Server on Ubuntu——Ubuntu上配置SQL Server Always On Availability Group

    下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...

  7. sql server 局域网与公网上的发布与订阅

    一台局域网的服务器,可以访问公网. 一台云端的服务器. 要求:将局域网中的服务器部分数据库同步到云端的服务器上. 配置情况: win server 2012 是发布服务器. win server 20 ...

  8. SQL Server 2016五大优势挖掘企业用户数据价值

    SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...

  9. SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型

    原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测 ...

随机推荐

  1. 初窥Kaggle竞赛

    初窥Kaggle竞赛 原文地址: https://www.dataquest.io/mission/74/getting-started-with-kaggle 1: Kaggle竞赛 我们接下来将要 ...

  2. 浅淡HTML5移动Web开发

    说实话,我们这次开发移动端的项目,整个项目组的人都是第一次,最初立项的时候为是选择native app和web app还争论了一番,最后综合考虑,我们选择了web(我们选择了h5)开发.但从这两种开发 ...

  3. OOP之C#设计及其UML(反向工程)

    现在总结一下C#类关键字(virtual.abstract.override.new.sealed)的使用(以C#代码体现),并再次熟悉一下OOP思想,使用UML工具EA(Enterprise Arc ...

  4. nginx+uwsgi<django web环境的搭建>

    1.sudo pip install uwsgi 2.sudo apt install nginx 3.sudo /etc/init.d/nginx start 4.netstat -tpnl 5./ ...

  5. Java getResourceAsStream() 方法会缓存文件的问题

    xxx.getClass().getClassLoader().getResourceAsStream("d:/test-config.properties") 这方法确实会缓存文 ...

  6. [OSI]网络间通信流程

    PC 连接交换机A,组成内网.DNS Serv 和 Web Serv 连接交换机B 组成外网. 示意图: 内网通信 PC1 到 PC2: PC1 发送的数据先到交换机A,交换机A没有ARP地址缓存表, ...

  7. [php-src]Php扩展的内存泄漏处理思路

    内容均以php5.6.14为例. 一. 封装函数时产生 memory leaks. [weichen@localhost www]$ php .php [,] [Tue Jul :: ] Script ...

  8. echarts绘制甘特图

      在setoption之后添加这段代码: window.addEventListener('resize', function () { myChart.resize();   }); 图表就能随着 ...

  9. rsync排除文件同步

    排除扩展名为log的文件 rsync -ave ssh --exclude '*.log' root@192.168.168.188:/website/abc.com/* /website/abc.c ...

  10. Android中如何查看so崩溃的log

    两种方法: 一.android自带的arm-eabi-addr2line工具 例如, - :: I DEBUG : # pc 0000d766 /system/lib/libtest.so - :: ...