收藏 分销(赏)

与日期有关sql大全.doc

上传人:w****g 文档编号:7387191 上传时间:2025-01-02 格式:DOC 页数:4 大小:27.54KB 下载积分:5 金币
下载 相关 举报
与日期有关sql大全.doc_第1页
第1页 / 共4页
与日期有关sql大全.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
(完整版)与日期有关sql大全 1. 与日期有关sql 大全 2.-—本周第一天 3。SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate()) 4.——or 5。select dateadd(wk, datediff(wk,0,getdate()), 0) 6.-—本周第一天 7。select dateadd(wk, datediff(wk,0,getdate()), 6) 8。 9。—-上月第一天 10.SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,—DAY(GETDATE())+1,GETDATE())),111) 11.--上月最后一天 12.SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59’ 13。—-本月第一天 14.select dateadd(dd,—datepart(dd,getdate())+1,getdate()) 15.-—本月最后一天 16。select dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate())) 17。-—本月天数 18。select datediff(dd,dateadd(dd,—datepart(dd,getdate())+1,getdate()), dateadd(dd,—datepart(dd,getdate())+1,dateadd(mm,1,getdate()))) 19。—-or 20。select datepart(dd,dateadd(dd,—1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+’—'+cast(month(getdate()) as varchar)+'—01’ as datetime)))) 21. 22.-—下月第一天 23。select dateadd(dd,—datepart(dd,getdate())+1,dateadd(mm,1,getdate())) 24。-—下月最后一天 25。SELECT CONVERT(CHAR(10),DATEADD(ms,—3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+' 23:59:59’ 26。——季度第一天 27.SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 28。-—季度最后一天(直接推算法) 29。SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,getdate())*3—Month(getdate()),getdate()),120)+’1’) 30.--季度的最后一天(CASE判断法) 31。select DATEADD(Month,DATEPART(Quarter,getdate())*3-Month(getdate()),getdate()) 32。 33。-—本月第一个星期一 34。SELECT DATEADD(wk, DATEDIFF(wk, '’, DATEADD(dd, 6 - DAY(getdate()), getdate())), ’’) 35.--去年最后一天 36。SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 37。--今年第一天 38。SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 39。—-今年最后一天 40.SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,0)) 41. 42。——指定日期所在周的任意一天 43.SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)—-5.指定日期所在周的任意星期几 44.--A. 星期天做为一周的第1天 45.SELECT DATEADD(Day,@number—(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt) 46.——B。 星期一做为一周的第1天 47.SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt) 48。-—-周内的第几日 49.select datepart(weekday,getdate()) as 周内的第几日 50。—-年内的第几周 51.select datepart(week,getdate()) as 年内的第几周 52。——年内的第几季 53。select datepart(quarter,getdate()) as 年内的第几季 54。 55。 56.——判断某天是当月的第几周的sql函数 57.CREATE FUNCTION WeekOfMonth(@day datetime) 58.RETURNS int 59.AS 60.begin 61。 62。————declare @day datetime 63.declare @num int 64。declare @Start datetime 65.declare @dd int 66.declare @dayofweek char(8) 67.declare @dayofweek_num char(8) 68.declare @startWeekDays int 69.---set @day=’2009-07—05’ 70。if datepart(dd,@day)=1 71。return 1 72。else 73。set @Start= (SELECT DATEADD(mm, DATEDIFF(mm,0,@day), 0)) --一个月第一天的 74.set @dayofweek= (datename(weekday,@Start)) —--得到本月第一天是周几 75。set @dayofweek_num=(select (case @dayofweek when '星期一’ then 2 76.when '星期二' then 3 77.when '星期三' then 4 78.when ’星期四’ then 5 79。when ’星期五' then 6 80。when '星期六' then 7 81.when '星期日’ then 1 82。end)) 83.set @dayofweek_num= 7—@dayofweek_num+1 ——-得到本月的第一周一共有几天 84.———print @dayofweek_num 85. set @dd=datepart(dd,@day) ---—得到今天是这个月的第几天 86。——print @dd 87。if @dd〈=@dayofweek_num --小于前一周的天数 88.return 1 89.else 90。set @dd=@dd—@dayofweek_num 91.if @dd % 7=0 92. begin 93。 set @num=@dd / 7 94。 return @num+1 95。 96. end 97。 else --if @dd % 7〈〉0 98。 99。 set @num=@dd / 7 100.set @num=@num+1+1 101. return @num 102。end 103。 104.--常用日期的视图 105.SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS today, REPLACE(CONVERT(varchar(8), GETDATE(), 108), ’:’, '') AS time, 106. REPLACE(REPLACE(REPLACE(CONVERT(varchar, GETDATE(), 120), ’—’, ''), ’ ', '’), ’:', ’’) AS all_date, CONVERT(varchar(12), GETDATE(), 112) AS date, 107。 YEAR(GETDATE()) AS year, MONTH(GETDATE()) AS month, DAY(GETDATE()) AS day, CONVERT(varchar(8), DATEADD(d, - 1, GETDATE()), 112) 108。 AS yestaday, CONVERT(varchar(8), DATEADD(d, 1, GETDATE()), 112) AS tomorrow 109。FROM 110. 111。/* 112。T—SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响 113。提示: 114.(@@Datefirst + datepart(weekday,@Date)) % 7 判断周几是最保险的! 与 @@DateFirst 无关,与语言版本无关 115.@@DateFirst 可能会导致 datepart(weekday,@Date) 不一样! 116.无论 @@DateFirst 等于几,无论是什么语言版本的 SQL Server 下面永远恒成立! 117.(@@Datefirst + datepart(weekday,@Date))%7 : 2、3、4、5、6、0、1 分别代表 周一 到 周日 118.-- */ 119。 120.create function udf_GetAge(@StartDate datetime,@EndDate datetime) 121.returns integer 122。-— 返回精确年龄 select dbo.udf_GetAge(’1949-10—01’,getdate()) 123.begin 124.return datediff(year,@StartDate,@EndDate) 125。 — case when datediff(day,dateadd(year,datediff(year,@StartDate,@EndDate),@StartDate),@EndDate) 〉= 0 126. then 0 127. else 128. 1 129. end 130。end 131。 132。go 133. 134.create function udf_DaysOfYearByDate(@Date datetime) 135。returns integer 136.-- 返回年的天数 可判断 平(365)、润(366) 年 137。begin 138。return datediff(day,dateadd(year,datediff(year,0,@Date),0),dateadd(year,datediff(year,0,@Date) + 1,0)) 139.end 140. 141.go 142。 143.create function udf_DaysOfYear(@Year integer) 144。returns integer 145.-- 返回年的天数 可判断 平(365)、润(366) 年 146。begin 147。return datediff(day,dateadd(year,@year — year(0),0),dateadd(year,@year — year(0) + 1,0)) 148。end 149. 150。go 151. 152。create function udf_HalfDay(@Date datetime) 153.returns datetime 154.-- 返回 @Date 是 上午 返回 @Date 的零点,@Date 是 下午 返回 @Date 的十二点 155。begin 156.return case when datepart(hour,@Date) 〈 12 157. then dateadd(day,datediff(day,0,@Date),0) ——上午归到 零点 158。 else 159。 dateadd(hour,12,datea
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服