使用sql语句计算周次及起始日期
最近在做周报填报的功能,其中需要算一下周次及起始日期。本打算用程序代码算一下的,但是感觉用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语句计算周次及起始日期相关推荐
- 通过SQL语句计算两地的经纬度距离
通过SQL语句计算两地的经纬度距离 一.SQL案例 二.SQL参数说明 成功案例演示(对比腾讯地图): 一.SQL案例 select se.EnterpriseId,se.Code,se.Type,s ...
- 一条SQL语句计算出商品剩余库存数量
库存表(stock) 商品名称(mc) 商品总量(zl) A 100 B 120 销售表(sales) 商品名 ...
- sql语句计算出每个月的天数
从当前月-11个月开始,到当前月为止,用一个sql语句计算出每个月的天数. SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-LEVEL+1),'YYYY-MM') MONTH , ...
- Oracle经纬度查询最近sql,SQL语句计算经纬度距离
二: SQL语句计算经纬度距离 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( ...
- 利用SQL语句计算库存
计算库存量: SELECT TOP 100 PERCENT dbo.Office_In.InCode, dbo.Office_In.InDate, dbo.Office_In.ComCo ...
- sql语句计算缺失率
文章目录 背景 语句 结果 背景 计算某个数据库中某个表的某个属性的缺失率. 语句 SELECT COUNT(*) FROM `表名` WHERE `属性` IS NULL INTO @meiyou; ...
- php sql语句计算距离,sql计算经纬度得出最近距离的公式
Android的px.dp和sp Android的px.dp和sppx: 即像素,1px代表屏幕上一个物理的像素点:偶尔用到px的情况,是需要画1像素表格线或阴影线的时候. dp: 这个是最常用但也最 ...
- sql语句面试题(查询按照申请日期倒序排列的前10个记录)
昨天看一位面试的同学发的sql问答面试题并附了一张图片 在这里我帮许多初学者熟悉一下sql函数 第一个: select * from g_cardapply where g_applydate='20 ...
- SQL语句插入日期类型
SQL语句往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , ...
最新文章
- 数据库分区分表以及读写分离
- JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)
- SpringMVC Hello World 实例
- python抓取数据库_Python-7.爬取大量数据存入数据库
- ORB-SLAM2-金字塔求解-特征点的提取-描述子的计算
- wxpython菜单栏嵌套窗口_如何在wxpython中使嵌套的Panel和Sizer工作
- 【Python】一些函数
- vim中括号自动补全
- 设计模式(1)-- 七大软件设计原则-开闭原则
- VMware -- 安装linux镜像
- socket多人聊天程序C语言版(二)
- 有了这4款工具,再也不怕写SQL了,让你写出一手优雅的SQL
- 卷积神经网络的基本原理
- ubuntu清理垃圾
- 读书百客:《嘲鲁儒》赏析
- 诺华制药:一家被低估的瑞士制药巨头
- K - Kinds of Fuwas----(2015 summer training #4 (Qualifying))
- 怎么给自己的电脑连接打印机
- html引入vue不兼容ie11,Vue在IE11版本浏览器中的兼容性问题
- iOS-自定义手势操作