添加一张表

IF NOT EXISTS ( SELECT  1     FROM    sysobjects     WHERE   name = 'JyWeb_CDYY' AND xtype='U') BEGIN CREATE TABLE [dbo].[JyWeb_CDYY](  [TheYear] [int] NULL,  [TheMonth] [int] NULL,  [YYDate] [datetime] NULL,  [Creator] [nvarchar](50) NULL,  [CreateTime] [datetime] NULL,  [WeekDay] [nvarchar](50) NULL,  [IsWorkDay] [bit] NULL,  [Guid] [nvarchar](50) NULL,  [Modifier] [nvarchar](50) NULL,  [ModifyTime] [datetime] NULL,  [Remark] [nvarchar](50) NULL ) ON [PRIMARY]

END GO

添加存储过程

IF EXISTS ( SELECT  1
            FROM    sysobjects
            WHERE   Name = 'GetCalendarByYear' AND xtype = 'P' )
BEGIN
    DROP PROCEDURE dbo.GetCalendarByYear
END
GO
CREATE PROCEDURE [dbo].[GetCalendarByYear]
 @Creator varchar(50)
AS
BEGIN
 DECLARE @WeekString varchar(12),
   @dDate SMALLDATETIME,
   @adddays int,
   @tempDate varchar(6)
 
 SELECT @adddays = 1   --日期增量(可以自由设定)
 
 SELECT @tempDate = DATENAME(YY,DateAdd(yy, 1, max(YYDate))) FROM JyWeb_CDYY --获得当前最大年份并增加一年
 IF @tempDate = '' OR @tempDate IS NULL
 BEGIN
  SELECT @tempDate = DATENAME(YY,max(GETDATE())) -- 获取当前年份
 END
 
 SELECT @dDate = cast(@tempDate+'-01'+'-01' as SMALLDATETIME)   --设置开始日期
   
 INSERT INTO JyWeb_CDYY(TheYear, TheMonth, YYDate, WeekDay, IsWorkDay, Creator, CreateTime, Guid)
 SELECT DATENAME(yy, convert(varchar(20),dateadd(dd,number,convert(varchar(5),@dDate,120)+'01-01'),120)) AS TheYear
 , DATEPART(month, convert(varchar(20),dateadd(dd,number,convert(varchar(5),@dDate,120)+'01-01'),120)) AS TheMonth
 , convert(varchar(20),dateadd(dd,number,convert(varchar(5),@dDate,120)+'01-01'),120) AS YYDate
 , datename(WEEKDAY,dateadd(dd,number,convert(varchar(5),@dDate,120)+'01-01')) AS WeekDay
 , CASE WHEN datename(WEEKDAY,dateadd(dd,number,convert(varchar(5),@dDate,120)+'01-01')) IN ('星期六','星期日') THEN 0 ELSE 1 END AS IsWorkDay
 , @Creator AS Creator, GETDATE() AS CreateTime, NEWID() AS Guid
 FROM master..spt_values
 WHERE type='P'
 AND dateadd(dd,number,convert(varchar(5),@dDate,120)+'01-01')<=dateadd(dd,-1,convert(varchar(5),dateadd(YEAR,1,@dDate),120)+'01-01')
END
GO

关于时间日期星期几的转换

select GETDATE() as '当前日期时间',
DateName(year,GetDate())+'-'+DateName(month,GetDate())+'-'+DateName(day,GetDate()) as '当前日期',
DateName(quarter,GetDate()) as '第几季度',
DateName(week,GetDate()) as '一年中的第几周',
DateName(DAYOFYEAR,GetDate()) as '一年中的第几天',
DateName(year,GetDate()) as '年',
DateName(month,GetDate()) as '月',
DateName(day,GetDate()) as '日',
DateName(hour,GetDate()) as '时',
DateName(minute,GetDate()) as '分',
DateName(second,GetDate()) as '秒',
DateName(MILLISECOND,GetDate()) as '豪秒',
DateName(WEEKDAY,GetDate()) as '星期几'

select GETDATE() as '当前日期时间',
DatePart(year,GetDate())+'-'+DatePart(month,GetDate())+'-'+DatePart(day,GetDate()) as '当前日期',
DatePart(quarter,GetDate()) as '第几季度',
DatePart(week,GetDate()) as '一年中的第几周',
DatePart(DAYOFYEAR,GetDate()) as '一年中的第几天',
DatePart(year,GetDate()) as '年',
DatePart(month,GetDate()) as '月',
DatePart(day,GetDate()) as '日',
DatePart(hour,GetDate()) as '时',
DatePart(minute,GetDate()) as '分',
DatePart(second,GetDate()) as '秒',
DatePart(MILLISECOND,GetDate()) as '豪秒',
DatePart(WEEKDAY,GetDate()) as '星期几'

转载于:https://www.cnblogs.com/wujianmin-web/p/10599261.html

SQL server中关于年月日周的添加相关推荐

  1. SQL Server中如何给主键添加主键约束

    SQL Server中如何给主键添加主键约束? 方法/步骤 1 SQL Server中如何给表添加主键约束,下面为大家分享了两种方法希望大家能够速学速懂. 2 3 在如下图中大家可以看到的是一个Stu ...

  2. 第17周翻译:SQL Server中的事务日志管理的阶梯:第5级:在完全恢复模式下管理日志...

    来源:http://www.sqlservercentral.com/articles/Stairway+Series/73785/ 作者:Tony Davis, 2012/01/27 翻译:刘琼滨. ...

  3. 十步优化SQL Server中的数据访问

    故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户, ...

  4. cte公用表表达式_CTE SQL删除; 在SQL Server中删除具有公用表表达式的数据时的注意事项

    cte公用表表达式 In this article, the latest in our series on Common table expressions, we'll review CTE SQ ...

  5. 在SQL Server中读取事务日志-从黑客到解决方案

    The SQL Server transaction log is akin to a 'Black box' in an airliner. It contains all of the recor ...

  6. SQL Server中T-SQL语句查询使用的函数

    SQL Server中T-SQL语句查询使用的函数 一,字符串函数 字符串函数用于对字符串数据进行处理,并返回一个字符串或数字. 函数名 描述 举例 CHARINDEX 用来寻找一个指定的字符串在另一 ...

  7. SQL Server中的数据字典

    数据字典是记录了数据库的系统描述信息的表和视图的集合,分为两类 系统自带:DBMS自带的,用于统计数据库中的相应信息.在SQL Server 数据库中的sys*表,里面记录着系统字段的定义.索引.完整 ...

  8. SQL Server中的执行引擎入门

    简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行.本文旨在分类 ...

  9. SQL Server中如何识别、查找未使用的索引(unused indexes)

    在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...

  10. SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别

    SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别 我们在写存储过程的时候经常会遇到需要将查询到的数据存到一张表里面的情况,如将一个table1的数据 ...

最新文章

  1. (NO.00005)iOS实现炸弹人游戏(十一):怪物之火精灵
  2. springboot中使用lua脚本+aop作限流访问案例代码
  3. LYNC2013部署系列PART4:群聊部署
  4. IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
  5. Linux宏定义实现类成员函数,全面解析Linux内核的同步与互斥机制
  6. java获取年的第一天和最后一天_java中如何获取当前年份的第一天和最后一天
  7. SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?...
  8. C++交换两个数组的前n个字节
  9. sql 训练及总结
  10. 一幅图告诉你C-C++注释转换有多简单
  11. Ubuntu下多个gcc版本之间的切换
  12. 使用javassist
  13. Flash CS 6绘图技巧之锁定填充
  14. “神舟八号”飞船将瞄准11月1日5时58分发射
  15. 上网行为管理(使用软件Panabit)
  16. Python再次拿第一,我一点都不意外,只是有些事情并非人人都看得清楚
  17. php公鸡五钱一只,PHP经典题:百钱百鸡问题(穷举算法)
  18. 杰奇php手机登陆自动跳转,杰奇cms电脑与手机自动判断跳转代码
  19. Calendar 获取指定时间
  20. Java+MySQL基于SSM的爱心救助车队管理系统的设计与实现 开题 毕业设计

热门文章

  1. eclipse中出现代码覆盖的颜色信息,如何去掉
  2. 组装电脑时,散热器高度要与机箱适配
  3. LINUX使用sed,字串中包含特殊字符怎么办?
  4. grep搜索字串包含特殊字符怎么办
  5. Linux上RandomAccessFile访问FTP文件出错
  6. 《TensorFlow技术解析与实战》学习笔记2
  7. VirtualBox无法启动虚拟机的解决办法
  8. 热烈庆祝排名进入3000!
  9. 遇到Python中文目录名问题,未解决
  10. using编译指令和using声明比较