在现实SQL计较中,有时辰需要统计从指心猿意马日期昔时的第一天到指心猿意马日期之间的数据,这个时辰,就需要计较出昔时的第一天到底是什么日期,这个该怎么计较呢?
总体思绪:先计较指心猿意马日期距离最小日期(1900-01-01)之间相差几多年,然后,再从最小日期加上相差的年份,就获得了指心猿意马日期的昔时第一天。本文以sqlserver为例讲解,需要用到两个函数dateadd和datediff
获取SQLserver的当前日期
select GETDATE()
DATEADD(datepart, number, date)利用
1)datepart:暗示你要操作的日期的部门,一次只能操作一个类型。好比,一次加5年,一次加2月,一次加3天。都只能一个一个的加。年:year, 月:month, 日:day
2)number:暗示你要加或者减的数目,若是detepart是年,就暗示操作年
3)date:暗示在什么日期根本上操作
DATEDIFF(datepart, startdate, enddate)利用
1)datepart:暗示你要计较的日期的部门,如年,月,日
2)startdate:暗示起头日期
3)enddate:暗示竣事日期
计较指心猿意马日期(以当前日期为例)到SQLServer最小日期(1900-01-01)之间相差几多年
select datediff(year, 0, getdate()) as '相差年份', GETDATE() as '当前日期'
从SQLServer最小日期(1900-01-01)加上距今的年份,就获得了本年的第一天
select dateadd(year, datediff(year, 0, getdate()), 0)
若是不是当前日期,只需要点窜getdate()就可以了。好比,想要知道2020-05-01的昔时第一天日期
select dateadd(year, datediff(year, 0, '2020-05-01'), 0)
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!