首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

T-SQL从dates表中选择过去n个月的周日到周六(相隔2周)的日期

T-SQL是一种用于管理和查询关系型数据库的编程语言,它是Microsoft SQL Server的一部分。在这个问答内容中,我们需要从dates表中选择过去n个月的周日到周六(相隔2周)的日期。

首先,我们需要了解dates表的结构和数据。假设dates表包含一个名为date的列,存储日期信息。

下面是一个解决方案的示例:

代码语言:txt
复制
DECLARE @n INT = 3; -- 假设选择过去3个月的日期
DECLARE @startDate DATE = DATEADD(MONTH, -@n, GETDATE()); -- 计算起始日期
DECLARE @endDate DATE = GETDATE(); -- 结束日期为当前日期

WITH cte AS (
  SELECT DATEADD(DAY, 1 - DATEPART(WEEKDAY, date), date) AS startDate,
         DATEADD(DAY, 7 - DATEPART(WEEKDAY, date), date) AS endDate
  FROM dates
  WHERE date >= @startDate AND date <= @endDate
)
SELECT startDate, endDate
FROM cte
WHERE DATEDIFF(WEEK, startDate, endDate) = 2
  AND DATEPART(WEEKDAY, startDate) = 1 -- 周日
  AND DATEPART(WEEKDAY, endDate) = 6 -- 周六
ORDER BY startDate;

上述代码中,我们首先声明了一个变量@n,表示选择过去的n个月。然后,使用DATEADD函数计算起始日期@startDate和结束日期@endDate。

接下来,我们使用CTE(公共表表达式)来生成一个临时表,其中包含每个日期对应的周日和周六。我们使用DATEPART函数来获取日期的星期几,并使用DATEADD函数来计算每个日期对应的周日和周六。

最后,我们从临时表中选择符合条件的日期范围,即相隔2周的周日到周六。我们使用DATEDIFF函数来计算两个日期之间的周数,并使用DATEPART函数来检查起始日期和结束日期是否为周日和周六。最后,按照起始日期进行排序。

这是一个基本的解决方案,根据实际情况可能需要进行调整。关于T-SQL和Microsoft SQL Server的更多信息,您可以参考腾讯云的SQL Server产品介绍页面:SQL Server

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于项目蓝图分析工作资源分配

4.生成周列表 下面在数据分析表中我们新建一列日期,使这列日期的每一行数据代表了一周的时间段。而这列日期的区间就是从产品的筹备日期开始到产品的下市日期,即产品的全生命周期。...在Power Query中点击添加列的自定义列,并在自定义列公式中输入: List.Dates(Date.EndOfWeek([筹备日期]), Number.From([下市日期]- [筹备日期])/7...在生成新的列后单击下方红框按钮并选择“扩展到新行”,即生成新的一列日期,可以看到所有的日期均为周日开始到周六结束。...其中Date.EndOfWeek([筹备日期])用以计算筹备日期当周的周日(因为公司每周以周一开始,周日作为最后一天)。...List.Dates函数根据给定的起始日期,日期个数,日期间隔生成日期列表,其使用格式为:List.Dates(start as date, count as number, step as duration

2.2K20

【工具】EXCEL十大搞笑操作排行榜

5.填充序列 如果想做一个排班表,需要将2013-1-1到2013-12-31的日期输入到EXCEL中,并且跳过周六周日。一个一个的手动录入日期要抓狂 吧?...大多用户在A1输入2013-1-1,然后右下角一直往下拖动,一不留神拉过头了,再把多余的删除,然后在MOD呀,IF呀,WEEKDAY呀,排序 呀,筛选呀,反正是把周六周日给找出来再删除,……终于搞定了,...可以在A1输入 2013-1-1,然后点击【开始】选项卡,然后在【编辑】组中,找到【填充】,在出现的下拉列表中选择【序列】,序列产生在列,类型选择日期,日期单位 为工作日,步长值为1,终止值为2013-...如果选择数据,点击【插入】,【数据透视表】,只 需将日期拖放在行标签中,数量拖放在值标签中,然后在数据透视表日期列中右击,创建组。...如果你以上十项全中,那么别灰心,关注我,就可以从我发 布的信息中了解到有关OFFICE的许多内容!如果你以上十项全能,那么恭禧你,你已经达到了EXCEL中级水平,请一笑而过。

3.1K60
  • 论投稿 — 投稿还要挑日子啊?!

    图 1 一周内每日的投稿数,其中周三投稿数最多,其次是周二。 ? 表 1 一周内每日投稿数和接收情况,其中投稿数用 N 表示,被接收的文章数用 Na 表示,被拒稿数用 Nr 表示。...Nrr 是指未按时提交返修的稿件数量。Nw 是指投稿撤回的数量。 周一至周六分别由数字 1 至 6 表示,周日为 0。...因此 N≠Na+Nr 从上表可以看出拒绝/接受概率从周日的 1.79 开始下降到周一的 1.26,周二达最低的 0.77,之后逐渐增加至 1.25,1.26,1.32,2.36(周六),这意味着周六、日的拒稿概率高...图 2 示一周稿件接收概率与拒稿概率走势图:周二投稿的接收率最高,周六、周日拒稿率居前两位。 别赶稿子,利用周末好好写 为什么会出现这样的情况?...研究最后,学者们提出论文接收和发表的过程还应考虑到编辑和审稿人的参与,他们在其中所起的作用也是值得进一步研究和探讨的。 尽管研究采用的样本非医学期刊,但是或许对大家有参考意义呢?

    1.5K50

    JavaScript基础08--内置方法

    Date 实例用来处理日期和时间使用Date实例化日期对象 获取当前时间必须实例化 获取指定时间的日期对象var now = new Date();var future = new Date...2020console.log(date.getMonth() + 1); //月份 返回的月份小1个月,记得月份加1呦console.log(date.getDate()); //返回的是 几号console.log...(date.getDay); //周一返回的是1 周六返回的是6 周日返回的是0//我们写一个 2020年 9月 6日 星期日var year = date.getFullYear();var month...}console.log("今天是" + year + "年" + month + "月" + dates + "日" + day);//格式化日期 时分秒var date = new Date();console.log...简单写可以这么做 (最常用的)var now = + new Date();// 3. HTML5中提供的方法,有兼容性问题var now = Date.now();倒计时案例 :1.

    29510

    Vue学习笔记之moment.js日期处理控件

    0x00 概述 本文主要记录moment.js日期控件在vue中的使用; moment可以方便的计算自然月或者自然年份,避免使用固定天数或者月份计算导致结束日期错乱问题。...0x01 安装moment插件 npm install moment --save  在package.json中查看(moment插件安装成功) 在Vue的JS部分导入moment import moment...日期格式化 官网给出的几种情况(都是当前日期,若指定日期date, moment(date).format()) # 精确到毫秒 moment().valueOf() ## 1584182611042...().endOf('month') 获取当月第一天是星期几: # 用于设置星期几,其中星期日为 0、星期六为 6 moment().startOf('month').day() 获取前n天 / 后n天...当然现实中很少有这样的需求 moment(date).format('YYYY~MM~DD HH+mm:ss') 项目中日期快捷选择:今日、昨日、本周、 上周、 本月、 上月、 本年、 去年 //

    13.2K20

    Moment.js常见用法

    moment().date(15)moment().set('date', 15)设置某个星期中的某一天moment().weekday(0) // 设置日期为本周第一天(周日)moment().isoWeekday...,没有前导零1到12MM数字表示的月份,有前导零01到12MMM三个字母缩写表示的月份Jan到DecMMMM月份,完整的文本格式January到DecemberQ季度1到4D月份中的第几天,没有前导零1...到31DD月份中的第几天,有前导零01到31d星期中的第几天,数字表示0到6,0表示周日,6表示周六ddd三个字母表示星期中的第几天Sun到Satdddd星期几,完整的星期文本从Sunday到Saturdayw...ant的a-range-picker组件的disabledDate使用不能选择今天之前的日期(包括今天)disabledDate(current) { return current && current...选择今天之前的日期(不包括今天)disabledDate(current) { return current && current < moment

    10800

    MySQL中日期和时间函数学习--MySql语法

    %W 工作日名称 (周日..周六) %w 一周中的每日 (0=周日..6=周六) %X 该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用 %x 该周的年份,其中周一为每周的第一天...这同SYSDATE()的运行有所不同。 PERIOD_ADD(P,N) 添加 N 个月至周期P (格式为YYMM 或YYYYMM),返回值的格式为 YYYYMM。注意周期参数 P 不是日期值。...其意义是,例如, 只要具体日期部分的范围时从 1到 31之间,则允许一个日期中的具体日期部分大于一个月中天数值。并且,允许“零”日期或带有0值部分的日期。...假如你向UNIX_TIMESTAMP()传递一个溢出日期,它会返回 0,但请注意只有基本范围检查会被履行 (年份从1970 到 2037, 月份从01到12,日期从 01 到31)。...WEEK() 的双参数形式允许你指定该星期是否起始于周日或周一, 以及返回值的范围是否为从0 到53 或从1 到53。

    1.9K40

    SQL Server 的时间函数

    ,date) 返回日期date中,interval指定部分所对应的整数值 DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 其中DatePart...Wk ww 周,一年中的第几周 0 ~ 51 Hour Hh h 时0 ~ 23 Minute Mi n 分钟0 ~ 59 Second Ss s 秒 0 ~ 59 Millisecond Ms -...1,周六为7) DatePart('d','2005-7-25 22:56:32')返回值为 25即25号 DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第...-2-2,然后格式化数据库表中的日期 Convert(varchar(10),TimeFiled,120),最后我们就可以用一条Sql语句得到当天的数据了....====================================================== T-Sql查找表中当月的记录 思路:将要查找的时间字段用Month()函数取出其中的月份,然后再取出当前月的月份

    2.8K60

    crontab 详细用法 定时任务

    以一下格式添加一行: 分钟 小时 天 月 星期 命令 比如 10 3 * * 0,6 hello 就是每周六、周日的3点10分执行hello程序。...15 4 * * 4-6 hello 就是从周四到周六的4点15点执行hello程序。 然后用 contab contabs.tmp 命令导入新的配置。...10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每周六、周日的1 : 10重启apache。...时程表的格式如下 : f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。...a 到第 b 小时都要执行,其馀类推 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 当 f1 为 a, b, c,...

    1.4K20

    小案例(六):预测小偷行为(python)

    案件回顾 杂货店屡遭贼 杂货店遭小偷情况严重 现有8个月内,每天的失窃纪录 偷窃者有老顾客家属和学生,店主希望能防患于未然(问题:失窃是否有规律?怎样运用规律堤防盗贼?)...从10月份的失窃图可以看出,失窃数额呈现似有似无的周期性波动:1号,15号,29号失窃数额激增,相隔皆为14天,且都是周三,但是10号和23号也出现失窃小高峰。...,得到如下结果: 数额 损失 date 活动日 周一 周三 周二 周五 周六 周四 周日 0 2362 1 1 1 1 0 1 1 1 1 1 1 1315 0 2 1 1 1 1 1 1 0 1...函数执行逻辑回归,其中“损失”为要预测的变量,“活动日”及周一到周六的数据作为解释变量,为了避免多重共线性,这里不使用“周日”列。...从对已有数据进行分析的结果显示,两所学校的学生与杂货店失窃有关,但这个判断结果只是根据手头数据得到的,可能存在某盗窃团伙专门在隔周的周三作案但是我们不知道,也就是说解释变量一开始就选错了,因此解释变量的选择对结果有很大影响

    2.5K70

    小知识点--crontab

    -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则删除当前用户的crontab文件。...: 表示分钟,可以是从0到59之间的任何整数。...hour:表示小时,可以是从0到23之间的任何整数,0代表着0点。 day:表示日期,可以是从1到31之间的任何整数,即为一个月中的某一天。 month:表示月份,可以是从1到12之间的任何整数。...week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。...4.每周六或者周日的4:45 ping一下百度 45 4 * * 6,0 ping www.baidu.com 5.每周一的18 : 00至23 : 00之间每隔30分钟执行python -h

    60620

    PowerBI中短小而强悍的相对日期切片器

    在Power BI中使用日期切片器时,选择使用相对日期是很方便的。在很多业务场景中,我们总是要查看过去n天/n周/n月的情况。 尤其是选择n周的情况,在周分析时非常有用。...以前我们要查看最近三周的对比,比如在5月10号这天,我可能要手动选择4月20日-5月10日: 不过,到了第二天,我们很明显要看的是4月21日到5月11的数据,那么就得手动修改报告了,更何况如果是发布到云端...这里需要注意的是,有个小bug,系统默认的周(日期)是从周日开始计算的。...所以只能重新修订一下日期表,将周日作为一周的第一天,再来看结果,就对了: 但是这样确实不太方便,不符合业务逻辑。 那怎么办呢?...不过,最近在使用时,遇到一个小问题: 比如我选择的是对比过去的三个星期,今天早晨8点钟之前,日期范围是三周以前的4月20日到5月10号,而过了8点之后,日期范围又变成4月21日到5月11日了。

    1.5K20

    关于MySQL的日期你肯定不知道有这么多可以判断日期是星期几,这几种函数你必须要学会!

    如何判断日期是星期几,也希望能帮助到有需要的人,如果大家喜欢多多点赞+评论+关注 本周日期 本周销量 上周日期 上周销量 周一 xxx 周一 xxx 周二 xxx 周二 xxx 周三 xxx 周三...xxx 周四 xxx 周四 xxx 周五 xxx 周五 xxx 周六 xxx 周六 xxx 周日 xxx 周日 xxx DAYOFWEEK() 函数 DAYOFWEEK() 函数返回一个整数,表示给定日期是星期几...星期几 DAYOFWEEK()对应值 周一 2 周二 3 周三 4 周四 5 周五 6 周六 7 周日 1 语法 DAYOFWEEK(date) date:一个有效的日期或日期时间表达式。...星期几 WEEKDAY()对应值 周一 0 周二 1 周三 2 周四 3 周五 4 周六 5 周日 6 语法 WEEKDAY(date) date:一个有效的日期或日期时间表达式。...不同的函数返回值的表示方式不同,选择适合你需求的函数。 你可以结合其他日期函数和条件语句(如 CASE 语句)来创建更复杂的查询。

    6800

    Power BI分解销售目标

    制定销售目标是销售的起点。销售目标的完成来自于每一天的跟进。因此,在零售等诸多业务中,有必要把销售目标分解到天。 目标分解的一个难点在于,每天都是不一样的。...我们使用销售权重系数(概念来源于黄成明老师的《数据化管理》)的方法可以赋予周一到周日每天不同的权重,将以上因素都考虑到,使得目标分解更加合理。...有需求的读者对本文内容进行少许变更,即可对一些特殊日期进行特殊处理。...1.计算周一到周日每天的销售系数 ---- 首先,将过去一年每天的销售数据导入Power BI(或Excel Power Query),使用添加列的方式加上星期。...,周六周日为销售高峰,分到最多目标。

    2.3K30

    Pandas 2.2 中文官方教程和指南(二十一·三)

    ]中的选择将按列而不是按行进行,参见索引基础知识。...将周六移至周一,周日/周一移至周二 previous_friday 将周六和周日移至上一个星期五” next_monday 将周六和周日移至下一个周一 假期和假期日历如何定义的示例: In [259...作为一个有趣的例子,让我们看一下埃及,那里观察到周五至周六的周末。...在这种情况下,营业时间超过午夜并且重叠到第二天。有效的营业时间由是否从有效的 BusinessDay 开始来区分。...将周六移动到周一,周日/周一移动到周二 previous_friday 将周六和周日移动到上一个星期五” next_monday 将周六和周日移动到下一个周一 定义假期和假日日历的示例: In [259

    20200

    纯血鸿蒙APP实战开发——自定义日历选择器

    效果图预览使用说明加载完成后显示主界面,点当前日期后会弹出日历选择器,选择日期后会关闭弹窗,主页面日期会变成选定的日期,应用退出再进入还是显示上次选择的日期。实现思路获取当前月和下个月的日期信息。...const SATURDAY = 6 // 日历表上周六对应的序列号,从周日开始算起,取值0~6export function getMonthDate(specifiedMonth: number,...// 每个月的日期List({initialIndex: this.initialIndex}) { /** * 性能知识点:列表中数据较多且不确定的情况下,使用LazyForEach进行数据循环渲染...0 : 1) // 将日期数组中为0的都设置为不显示,即不显示上个月和下个月的内容 // 点击选定的日期后,关闭日历弹窗,显示日期改变为选择的日期 .onClick...(() => { // 将缓存的Preferences实例中的数据异步存储到用户首选项的持久化文件中 let flushPromise = object.flush(

    10110
    领券