在現實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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!