最近在做周报填报的功能,其中需要算一下周次及起始日期。本打算用程序代码算一下的,但是感觉用sql更有意思,所以搜了一些相关的知识以及前人写的相关的sql语句,在此基础上进行了完善。

1、国际标准周日是每周的第一天,但是在咱们中国人还是习惯周一为每周的第一天,因此首先要把周一设置为每周的第一天

SET DATEFIRST 1

2、计算你传过来时间段的开始日期是本年的第几周和周几(如果为周日则周次再加一)

DATEPART(dw, @tmpDate)
SELECT   DATEPART(WEEK, @tmpDate)

3、完整sql(这里我传的时间段是2017-01-15至2017-01-31)

SET DATEFIRST 1
DECLARE @tmpDate DATETIMEDECLARE @index INT
DECLARE @table TABLE(WeekTimes INT ,FirstDay DATE ,EndDay DATE)
SET @tmpDate = '2017-1-15'
DECLARE @YearFistWK INT= DATEPART(dw, @tmpDate)
SET @index = ( SELECT   DATEPART(WEEK, @tmpDate)   )
IF ( @YearFistWK = 7 )BEGIN SET @index = @index + 1END
WHILE @tmpDate <= '2017-1-31'BEGININSERT  INTO @tableSELECT  @index ,a.FirstDay ,b.EndDayFROM    ( SELECT    1 AS ID ,DATEADD(wk, DATEDIFF(wk, 0, @tmpDate), 0) AS FirstDAy) aLEFT JOIN ( SELECT  1 AS ID ,DATEADD(wk,DATEDIFF(wk, 0, @tmpDate),6) AS EndDay) b ON a.ID = b.IDSET @tmpDate = DATEADD(DAY, 7, @tmpDate)SET @index = @index + 1END
SELECT  *
FROM    @table

4、运行结果

使用sql语句计算周次及起始日期相关推荐

  1. 通过SQL语句计算两地的经纬度距离

    通过SQL语句计算两地的经纬度距离 一.SQL案例 二.SQL参数说明 成功案例演示(对比腾讯地图): 一.SQL案例 select se.EnterpriseId,se.Code,se.Type,s ...

  2. 一条SQL语句计算出商品剩余库存数量

    库存表(stock) 商品名称(mc)    商品总量(zl)  A                     100  B                     120 销售表(sales) 商品名 ...

  3. sql语句计算出每个月的天数

    从当前月-11个月开始,到当前月为止,用一个sql语句计算出每个月的天数. SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-LEVEL+1),'YYYY-MM') MONTH , ...

  4. Oracle经纬度查询最近sql,SQL语句计算经纬度距离

    二: SQL语句计算经纬度距离 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( ...

  5. 利用SQL语句计算库存

    计算库存量: SELECT TOP 100 PERCENT dbo.Office_In.InCode, dbo.Office_In.InDate,        dbo.Office_In.ComCo ...

  6. sql语句计算缺失率

    文章目录 背景 语句 结果 背景 计算某个数据库中某个表的某个属性的缺失率. 语句 SELECT COUNT(*) FROM `表名` WHERE `属性` IS NULL INTO @meiyou; ...

  7. php sql语句计算距离,sql计算经纬度得出最近距离的公式

    Android的px.dp和sp Android的px.dp和sppx: 即像素,1px代表屏幕上一个物理的像素点:偶尔用到px的情况,是需要画1像素表格线或阴影线的时候. dp: 这个是最常用但也最 ...

  8. sql语句面试题(查询按照申请日期倒序排列的前10个记录)

    昨天看一位面试的同学发的sql问答面试题并附了一张图片 在这里我帮许多初学者熟悉一下sql函数 第一个: select * from g_cardapply where g_applydate='20 ...

  9. SQL语句插入日期类型

    SQL语句往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , ...

最新文章

  1. 数据库分区分表以及读写分离
  2. JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)
  3. SpringMVC Hello World 实例
  4. python抓取数据库_Python-7.爬取大量数据存入数据库
  5. ORB-SLAM2-金字塔求解-特征点的提取-描述子的计算
  6. wxpython菜单栏嵌套窗口_如何在wxpython中使嵌套的Panel和Sizer工作
  7. 【Python】一些函数
  8. vim中括号自动补全
  9. 设计模式(1)-- 七大软件设计原则-开闭原则
  10. VMware -- 安装linux镜像
  11. socket多人聊天程序C语言版(二)
  12. 有了这4款工具,再也不怕写SQL了,让你写出一手优雅的SQL
  13. 卷积神经网络的基本原理
  14. ubuntu清理垃圾
  15. 读书百客:《嘲鲁儒》赏析
  16. 诺华制药:一家被低估的瑞士制药巨头
  17. K - Kinds of Fuwas----(2015 summer training #4 (Qualifying))
  18. 怎么给自己的电脑连接打印机
  19. html引入vue不兼容ie11,Vue在IE11版本浏览器中的兼容性问题
  20. iOS-自定义手势操作

热门文章

  1. JAVA 获取系统日期时间
  2. python 之图像处理
  3. Hybrid技术简介
  4. IPv6(计算机网络-网络层)
  5. 吴魏的日记 一个男人最真实的坚定
  6. 网络攻击链与网络威胁捕获技术初探(一)
  7. excel两个表格内容合并怎么做?
  8. 一心想成功会让我们输掉什么?
  9. BUG不断,黑马全在。百尺竿头,更进一球!
  10. python查看微信撤回信息