`

sqlserver日期推算(年,季度,月,星期推算)

阅读更多

DECLARE @dt datetime
SET @dt=GETDATE()

DECLARE @number int
SET @number=3


--1.指定日期该年的第一天或最后一天
--第一天为1月1日、最后一天为12月31日都是固定的

--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'

--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'


--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
 CONVERT(char(8),
  DATEADD(Month,
   DATEPART(Quarter,@dt)*3-Month(@dt)-2,
   @dt),
  120)+'1')

--B. 季度的最后一天(CASE判断法)
SELECT CONVERT(datetime,
 CONVERT(char(8),
  DATEADD(Month,
   DATEPART(Quarter,@dt)*3-Month(@dt),
   @dt),
  120)
 +CASE WHEN DATEPART(Quarter,@dt) in(1,4)
  THEN '31'ELSE '30' END)

--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
 CONVERT(char(8),
  DATEADD(Month,
   1+DATEPART(Quarter,@dt)*3-Month(@dt),
   @dt),
  120)+'1')


--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')

--B. 月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')


--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)


--5.指定日期所在周的任意星期几
--A.  星期天做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  星期一做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

 

http://www.cnblogs.com/aierong

 

 

分享到:
评论

相关推荐

    sql server日期格式转换方法大全

    这两个函数可以用于提取日期的特定部分(如年、月、日)或添加/减去日期间隔。例如,获取日期字段的年份: ```sql SELECT DATEPART(year, myDate) AS 'Year' FROM myTable; ``` 要增加一年: ```sql SELECT ...

    SQL SERVER 获取年、季、月、周、日开始时间和结束时间

    Type 日期类型:(“-”为前一期间,无符号为当期,“+”为后一期间),Y 年,Q 季,M 月,W 周,D 日 例:前一年:-Y,当年:Y,+Y:下一年 datetype : ‘S’返回开始时间,'E'返回结束时间 datetime: 按哪个时间进行...

    sql server提取日期的部分

    总之,`DATEPART`和`DATENAME`函数在SQL Server中提供了强大的日期和时间处理能力,它们能够帮助你轻松地从日期字段中提取出所需的年、月、日、周、时、分、秒等信息,并以整数或字符串的形式呈现。在处理日期相关的...

    SQL Server中日期问题的解决

    例如,如果希望找出所有日期为2004年12月19日的数据记录,则可以使用以下SQL语句: ```sql SELECT * FROM YourTable WHERE DateDiff(dd, DateTimeColumn, '12/19/2004') = 0; ``` 这里的`dd`表示天数,`DateTime...

    SQL Server各种日期计算

    在SQL Server中,默认情况下,日期的开始是1900年1月1日,时间的开始是00:00:00.000。因此,很多日期相关的计算都会以这个时间点作为参考。 文章中提到了一个非常实用的技术点:系统中星期的第一天(DATEFIRST)的...

    SQLServer获取2020年节假日列表.zip

    首先,我们来看标题"SQLServer获取2020年节假日列表",它暗示了我们将学习如何在SQL Server中创建一个存储2020年节假日的表,并且可能涉及到如何动态地获取这些数据。在SQL Server中,我们可以创建一个包含所有公共...

    sqlserver sql 根据出生日期生成年龄

    sqlserver sql 根据出生日期生成年龄 去

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    1.SQL Server 2014简介.mp4 10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录....

    SQL Server日期格式大全

    用于SQL Server 数据库查询时的时间格式化语句

    SQLSERVER时间日期函数详解

    SQLSERVER 时间日期函数详解 SQL Server 提供了多种时间日期函数,帮助开发者快速处理日期和时间相关的操作。下面将对这些函数进行详解,并提供示例。 1. GetDate() 函数 GetDate() 函数用于返回当前系统的日期和...

    SqlServer连接工具

    SQL Server连接工具是数据库管理员和开发人员用于与Microsoft SQL Server交互的重要软件。这些工具提供了多种功能,包括数据库的创建、管理、查询、备份、恢复以及性能优化等。在本篇文章中,我们将深入探讨SQL ...

    [SQL Server] Microsoft SQL Server 2012 技术内幕 (英文版)

    ☆ 资源说明:☆ [Microsoft Press] Microsoft SQL Server 2012 技术内幕 (英文版) [Microsoft Press] Microsoft SQL Server ...[出版日期] 2013年12月09日 [图书页数] 982页 [图书语言] 英语 [图书格式] PDF 格式

    sql server2019安装包

    SQL Server 2019是Microsoft推出的一款关系型数据库管理系统,是SQL Server系列中的一个重要版本。它提供了强大的数据存储、处理和分析能力,广泛应用于企业级数据库应用开发和数据分析。在本安装包中,主要包含的是...

    sql server 日期类型代号图片

    sql server 日期类型代号图片

    SQLServer获取2019年节假日列表

    标题“SQLServer获取2019年节假日列表”表明我们需要关注的是如何在SQL Server中查询并提取特定年份,比如2019年的公共假期信息。这通常涉及到设计日期表、编写查询脚本以及可能使用内置或自定义函数来实现。 首先...

    SQLServer+ 免安装版

    SQLServer+ 免安装版 SQLServer+是在原有SQLServer2000的基础上改善了数据库安装的繁锁性,让软件企业在发布基于SQLServer2000数据库软件的时候,只要把软件打包进入安装包而不需要再单独安装数据库,也不需要另外...

    sql server客户端连接工具

    SQL Server客户端连接工具是数据库管理员和开发人员用来与Microsoft SQL Server进行交互的重要工具。它提供了图形用户界面(GUI)和命令行选项,使得用户能够轻松地执行查询、管理数据库对象以及进行其他数据库维护...

    SQL server Native Client 10.0

    SQL Server Native Client 10.0 是微软推出的一款专门用于与SQL Server 2008及后续版本交互的客户端库,它集成了ODBC(Open Database Connectivity)和OLE DB(Object Linking and Embedding, Database)接口。...

    sqlserver自动生成sql语句工具sqlserver转oracle

    首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种工具通常能帮助数据库管理员快速获取数据库的定义,便于备份、迁移或在其他环境中...

    SqlServer2005 打开 SqlServer2008 mdf文件

    Sql Server 2005 打开 Sql Server 2008 mdf 文件数据库转换是指将 Sql Server 2008 中的数据库文件(mdf 文件)转换为 Sql Server 2005 可以识别的格式,以便在 Sql Server 2005 中使用。这种转换过程需要使用 Sql ...

Global site tag (gtag.js) - Google Analytics