SQL Server 常用日期函数的运用

本文详细介绍如何使用SQLServer日期函数获取本周、本月、本季度、本年等关键日期,包括第一天、最后一天及特定星期,同时提供获取月份英文缩写和去年同一天的SQL语句。

 1、对SQL Server 日期函数的应用,本文主要的内容是如何获取下面的相关日期

本周星期一本月第一天本季度第一天本年第一天
本周第一天本月最后一天本季度最后一天本年最后一天
本周最后一天上月第一天下季度第一天去年第一天
本月的第一个星期一上月最后一天下季度最后第一天去年最后一天
当前日期是当月的第几周下月第一天上季度第一天下年第一天
当月的最后一天是当月的第几周下月最后一天下季度第一天下年最后一天
 获取月份的英文缩写 去年同一天

 1、若想先了解常用日期函数的语法与描述等,可点击 此处

2、获取以上表格的日期,可参考以下 SQL 语句

-- 注:DATEDIFF(month, 0, GETDATE())是计算当前日期和“1900-01-01 00:00:00.000”这个日期之间的月数

-- 本周星期一
SELECT  DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)

-- 本周第一天
SELECT   DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)

-- 本周最后一天
SELECT   DATEADD(wk,DATEDIFF(wk,0,GETDATE())+1,-1)

-- 本月的第一个星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-DATEPART(day,GETDATE()),GETDATE())), 0) 

-- 本月第一天
SELECT   DATEADD(month,DATEDIFF(month,0,GETDATE()),0)

-- 本月最后一天
SELECT EOMONTH (GETDATE())
SELECT DATEADD(ms,-2,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1, 0)) 
SELECT DATEADD(month, DATEDIFF(month, 0, DATEADD(month, 1, GETDATE())), -1)
SELECT DATEADD(day,-1,convert(varchar(7),DATEADD(month,1,GETDATE()),120)+'-01') 

-- 上月第一天
SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE())-1, 0)

-- 上月最后一天
SELECT EOMONTH (GETDATE(),-1) 
SELECT DATEADD(day,-day(GETDATE()),GETDATE())
SELECT DATEADD(ms,-2,DATEADD(mm, DATEDIFF(month,0,GETDATE()), 0))

-- 下月第一天
SELECT convert(varchar(7),DATEADD(month,1,GETDATE()),120)+'-01' 
SELECT DATEADD(month, DATEDIFF(month, 0, DATEADD(month, 1, GETDATE())), 0)

-- 下月最后一天
SELECT EOMONTH (GETDATE(),1) 

-- 本季度第一天(qq 是 quarter)
SELECT  DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0)
SELECT  CONVERT(char(8),DATEADD(month,DATEPART(qq,GETDATE())*3-month(GETDATE())-2,GETDATE()),120)+'01'

-- 本季度最后一天
SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE())+1, -1)
SELECT  DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,1,GETDATE())),-1)

-- 上个季度第一天
SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE())-1, 0)

-- 上个季度最后一天
SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), -1)

-- 下个季度第一天
SELECT  DATEADD(qq,DATEDIFF(qq,-1,GETDATE()),0)

-- 下个季度最后第一天
SELECT  DATEADD(qq,DATEDIFF(qq,-1,GETDATE())+1,-1)


-- 本年第一天
SELECT DATEADD(year, DATEDIFF(year, 0, GETDATE()), 0)

-- 本年最后一天
SELECT DATEADD(year, DATEDIFF(year, 0, GETDATE())+1, -1)
SELECT DATEADD(year,DATEDIFF(year,0,DATEADD(year,1,GETDATE())),-1)

-- 去年同一天
SELECT DATEADD(YEAR,-1,GETDATE())

-- 去年第一天
SELECT convert(varchar(7),DATEPART(year,DATEADD(year,-1,GETDATE())),120)+'-01-01'

-- 去年最后一天
SELECT DATEADD(year, DATEDIFF(year, 0, GETDATE()), -1)
SELECT DATEADD(ms,-2,DATEADD(yy, DATEDIFF(year,0,getdate()), 0))

-- 下年第一天
SELECT convert(varchar(7),DATEPART(year,DATEADD(year,1,GETDATE())),120)+'-01-01'

-- 下年最后一天
SELECT DATEADD(year, DATEDIFF(year, 0, GETDATE())+2, -1)

-- 返回当前日期是当月的第几周
SELECT (DATEPART(wk,GETDATE()) - DATEPART(wk,convert(varchar(7),GETDATE(),120) + '-01') + 1) 

-- 返回当月的最后一天是当月的第几周
SELECT (DATEPART(wk,EOMONTH(GETDATE())) - DATEPART(wk,convert(varchar(7),EOMONTH (GETDATE()),120) + '-01') + 1)

--  获取月份的英文缩写
SELECT GETDATE(), left(DateName(m, GETDATE()), 3) 

希望对你有帮助!!!

欢迎在评论区讨论,有什么写得不对的,欢迎指出来

工业和信息化部关于印发信息通信建设工程预算定额、工程费用定额及工程概预算编制规程的通知 发布时间:2017-02-10 来源:通信司 工信部通信[2016]451号 各省、自治区、直辖市通信管理局,中国电信集团公司、中国移动通信集团公司、中国联合网络通信集团有限公司、中国铁塔股份有限公司,相关单位: 为适应通信建设行业发展需要,合理有效控制通信建设工程投资,规范通信建设工程计价行为,根据国家法律法规及有关规定,我部对《通信建设工程概算、预算编制办法》及相关定额(2008年版)进行修订,形成了《信息通信建设工程预算定额》(共五册:第一册通信电源设备安装工程、第二册有线通信设备安装工程、第三册无线通信设备安装工程、第四册通信线路工程、第五册通信管道工程)、《信息通信建设工程费用定额》及《信息通信建设工程概预算编制规程》,现予以发布,自2017年5月1日起施行。工业和信息化部《关于发布<通信建设工程概算、预算编制办法>及相关定额的通知》(工信部规〔2008〕75号)同时废止。 工业和信息化部 2016年12月30日 抄送:工业和信息化部通信工程定额质监中心 (《信息通信建设工程预算定额》、《信息通信建设工程费用定额》及《信息通信建设工程概预算编制规程》由工业和信息化部通信工程定额质监中心组织出版、发行。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值