SQL Server计算一年中的第几周

一、计算一年中的第几天DATENAME(dp,d)

DATENAME(dp,d)函数根据dp指定返回日期中相应部分的值,dp可以取值为:quarter,dayofyear,day,week,weekday,hour,minute,second等,返回的值是字符型。

首先呢,SQL Server自带的有一个函数datename(dayofyear,'2021-06-14')可以计算出一年中的第几天。

以此类推,你是不是想到一年中的第几周应该用weekofyear.But 没有这个。

所以,要计算一年中的第几周还需要花点心思了,那问题来了?一周中的哪一天作为第一天呢?

二、计算一年中的第几周

默认都是周天作为一周的第一天。但是第一天是可以设置的

set datefirst 5 -- 设置周五为第一天

select datepart(wk,'2021-06-14')

 

三、DATEPART(dp,d)函数

用法:

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。返回的类型为整型。若要返回字符型可以用DATENAME()函数,可用于时间日期之间的拼接,用法和DATEPART()类似。

语法:DATEPART(datepart,date/string) 

datepart

缩写形式

yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw
hourhh
minutemi, n
secondss, s
millisecondms
microsecondmcs
nanosecondns
TZoffsettz
ISO_WEEKisowk, isoww

如果不是date或者string类型,我们需要将其转换为string(varchar)类型。

declare @shijian decimal(8)
    set @shijian = 20190718

SELECT GETDATE() AS 当前时间_date
    ,DATEPART(YEAR,GETDATE()) AS 当前年份_date
    ,DATEPART(yy,GETDATE()) AS 当前年份简写_date
    ,DATEPART(yy,'2019-07-18 14:17:25.793') AS 当前年份简写_string
    ,DATEPART(YYYY, CAST(CONVERT(varchar(8), @shijian) as DATE) )  as 当前年份简写_decimal

【题】获取HS_ESA41M00表KEEP_OF_DATE字段下所有年份的1.1号到1.15号,4.1号到4.15号,7.1号到7.15号,10.1号到10.15号数据   参考 https://www.cnblogs.com/EaTerLeader/p/11207137.html

select * from HS_ESA41M00 where DATEPART(MONTH, KEEP_OF_DATE) in(01,04,07,10) and DATEPART(DAY, KEEP_OF_DATE) between 01 and 15

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值