获知某一年的母亲节,父亲节和感恩节日期

完成这个要求之前,可以先参考另外一个函数《获取当月的天数列表https://www.cnblogs.com/insus/p/10837900.html

然后要知道标题三个节日的常识,母亲节在每年5月份的第二个星期天,父亲节在每年6月份的第三个星期天,而感恩节是在每年的11月份第四个星期的星期四。

知道这些常识就好办了。

写一个SQL的自定义函数:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      Insus.NET
-- Create date: 2019-05-12
-- Update date: 2019-05-12
-- Description: 获取节日日期
-- =============================================
CREATE FUNCTION [dbo].[svf_Festivals]
(
    @StartYear INT,
    @EndYear INT
)
RETURNS @tempTable TABLE([ID] INT IDENTITY(1,1) PRIMARY KEY,[Year] [INT] NOT NULL,[Mother‘s Day] [DATETIME] NULL,[Father‘s Day] [DATETIME] NULL,[Thanksgiving Day] DATETIME)
AS
BEGIN
    WHILE @StartYear <= @EndYear
    BEGIN
        INSERT INTO @tempTable ([Year]) VALUES(@StartYear)      

        UPDATE @tempTable SET [Mother‘s Day] = (
            SELECT [Date] FROM (
                SELECT ROW_NUMBER() OVER (ORDER BY [Date] ASC) AS [RowNumber], [Date] FROM [dbo].[tvf_DaysOfMonth](CAST(@StartYear AS NVARCHAR(4)) + ‘-05-01‘)
                WHERE DATENAME(dw,[Date]) = ‘Sunday‘) AS md
            WHERE [RowNumber] = 2)
        WHERE [Year] = @StartYear

        UPDATE @tempTable SET [Father‘s Day] = (
            SELECT [Date] FROM (
                SELECT ROW_NUMBER() OVER (ORDER BY [Date] ASC) AS [RowNumber], [Date] FROM [dbo].[tvf_DaysOfMonth](CAST(@StartYear AS NVARCHAR(4)) + ‘-06-01‘)
                WHERE DATENAME(dw,[Date]) = ‘Sunday‘) AS fd
            WHERE [RowNumber] = 3)
        WHERE [Year] = @StartYear

        UPDATE @tempTable SET [Thanksgiving Day] = (
            SELECT [Date] FROM (
                SELECT ROW_NUMBER() OVER (ORDER BY [Date] ASC) AS [RowNumber], [Date] FROM [dbo].[tvf_DaysOfMonth](CAST(@StartYear AS NVARCHAR(4)) + ‘-11-01‘)
                WHERE DATENAME(dw,[Date]) = ‘Thursday‘) AS td
            WHERE [RowNumber] = 4)
        WHERE [Year] = @StartYear

        SET @StartYear = @StartYear + 1
    END  

    RETURN
END
GO

Source Code

下面是列出2019至2025年所有以上三个节日的日期,帮忙检查一下,是否正确?

原文地址:https://www.cnblogs.com/insus/p/10853256.html

时间: 2024-11-07 01:20:23

获知某一年的母亲节,父亲节和感恩节日期的相关文章

原来今天是感恩节-Linux基础继续&amp;MySQL和PHP

hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) -----Linux常用命令(二)----- 3.文件搜索命令 3.1 文件搜索命令locate --优点: 搜索速度快(在学习中,要把眼光放远.放大一点,设想数据量很大的情况或是规模很大的问题的情况) locate 文件名 --工作原理: 在后台数据库按文件名搜索 所以,新创建的文件往往搜索不到

[岁月随想]感恩节前夕

上周末去教堂,牧师问来聚会的孩子们,接下来的一个礼拜,你们要感谢上帝什么? 有一个孩子回答,“感谢他给我们氧气”.是的,虽然免费,但是没了它,我们就都完了.真的要感谢上帝给我们氧气. 另一个孩子回答,“感谢家人和他们给我的爱”.是的,饶恕也许不是一件容易的事情,但让自己尝试饶恕吧,感谢身边爱你的人和你爱的人. 生活中是否还有很多你想不起来的.忘记了的该感谢的人或事物呢? 永存一颗感恩的心吧! 今天早上无意间看到了李娜告别网坛的信,长长的感恩清单,让人唏嘘! 提前祝各位感恩节快乐! http://

html+css实现感恩节祝福

<strong><span style="font-size:12px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>MyHtml.html</title> <meta http-equiv="keywords" content=&

感恩节快乐

感恩节哈,得说两句感谢的话,感谢慢热的我们俩最终越来越近,感谢我们可以做一对越来越有爱的小姐妹,感谢越接触越发现你是我喜欢的妹纸,Thank you~ —— 正能量小烨儿

“感恩节现象”正在蔓延,我们该如何抉择?

编者导读:"感恩节现象"字面上是指在美国传统节日-感恩节当天,部分行业要求员工加班不休息的情况.之后逐渐蔓延到很多行业与领域,泛指休息日或者节庆日等非上班期间加班的现象. 原作者标题:过度的沉溺于工作当中会让我们变得愚蠢.抑郁.损害健康甚至影响我们职业生涯--我们又该如何选择呢? 当Kmart宣布感恩节当天早上六点营业的时候,消息一发出,就震惊了整个国家.尽管这让寻求便宜货的人异常兴奋,但是许多人却对此持质疑态度.近年来,类似"感恩节蔓延"的现象引起了愈来愈多员工的

2014年感恩节,国外主机超低价购买教程,新手相关问题

2014年感恩节,11月27日!主机测评提醒各位关注国外域名.国外虚拟主机.国外VPS.国外服务器的朋友,2014年感恩节这天是你在2014年以及2015年的感恩节之前这段时间内最佳的购买时间,商家们一般会将原价大打折扣,多数可能降价到只有原价的1-5折.心动不如行动,准备行动起来吧! 2014年感恩节,购买国外的东西,需要注意些什么? 第一,支付工具,多数情况下商家会同时支持信用卡和paypal,其他诸如比特币等非主流这里不介绍了浪费时间.我这里说说这两种支付方式需要注意的事项: 信用卡:一般

感恩节QAD带你“吃鸡”

如果用一种颜色来形容11月,会是什么颜色?我会说是金色!因为落叶是金色的,在寒冬中那一缕微弱的阳光是金色的,还有今天的感恩节也是金色的. 说到感恩节,小编最先想到的就是火鸡.吃火鸡的习俗从二十世纪50年代就开始盛行,起初是为了盛情款待印第安人而设定的美食,但随着时代的迁徙,吃火鸡已经成为了感恩节必不可少的习俗之一. 看到这里你可能以为这是个美食推文,你想多了!今天我们要讲的是大数据"吃鸡"的话题! 玩过绝地求生的朋友们肯定不言而喻能理解"吃鸡"就是争夺第一的意思.在

课后习题和问题 review 问题 2.6节 2.7节

2.6节 R21.在BitTorrent中,假定Alice向Bob提供一个30秒间隔的文件块吞吐量.Bob将必须进行回报,在相同的间隔中向Alice提供文件块吗?为什么? It is not necessary that Bob will also provide chunks to Alice. Alice has to be in the top 4 neighbors of Bob for Bob to send out chunks to her; this might not occu

自定义配置节与配置节的读取

一.引子 你是否也遇到过这样的问题:项目很多配置都写到了App.Config或Web.Config的AppSettings内,每个人都加了几条,到最后囤积了大量的配置,分不清哪个是有用的.哪个是没用的了.(即便加了相关注释,也是乱的可以) 1   <appSettings>  2     <!--是否抛出异常-->  3     <add key="HasException" value="true" />  4     <