1、总体思路:先计算指定日期距离最小日期(1900-01-01)之间相差多少年,然后,再从最小日期加上相差的年份,就得到了指定日期的当年第一天。本文以sqlserver为例讲解,需要用到两个函数dateadd和datediff
2、获取SQLserver的当前日期 select GETDATE()
3、DATEADD(datepart, num水瑞侮瑜ber, date)使用 1)datepart:表示你要操辑湃形傥作的日期的部分,一次只能操作一个类型。比如,一次加5年,一次加2月,一次加3天。都只能一个一个的加。年:year, 月:month, 日:day 2)number:表示你要加或者减的数量,如果detepart是年,就表示操作年 3)date:表示在什么日期基础上操作
4、DATEDIFF(datepart, startdate, enddate)使用 1)datepart:表示你要计算的日期的部分,如年,月,日 2)startdate:表示开始日期 3)enddate:表示结束日期
5、计算指定日期(以当前日期为例)到SQLServer最小日期(1900颍骈城茇-01-01)之间相差多少年 select datediff(year, 0, getdate()) as '枷讹般身相差年份', GETDATE() as '当前日期'
6、从SQLServer最小日期(1900-01-01)加上距今的年份,就得到了今年的第一天 select dateadd(year, datediff(year, 0, getdate()), 0)
7、如果不是当前日期,只需要修改getdate()就可以了。比如,想要知道2020-05-01的当年第一天日期 select dateadd(year, datediff(year, 0, '2020-05-01'), 0)