1. 程式人生 > >sql中常見日期獲取

sql中常見日期獲取

新博 一段 最後一天 char 2-0 -1 etime 目錄 ron

閱讀目錄

  • 獲取當前年月日
  • 獲取各種日期的方法
  • 函數 參數/功能

回到頂部

獲取當前年月日

select MONTH(GETDATE())     6               --獲取當前月份
select MONTH(DATEADD(MONTH,1,GETDATE())) --獲取當前月份的下個月
select MONTH(DATEADD(MONTH,-1,GETDATE())) --獲取當前月份的上個月 

year()獲取年

select year(GETDATE()) 

day()獲取日

select day(GETDATE())

用DateName()獲取年月日

技術分享
select GETDATE() as ‘當前日期‘
select DateName(year,GetDate()) as ‘年‘
select DateName(month,GetDate()) as ‘月‘
select DateName(day,GetDate()) as ‘日‘
select DateName(dw,GetDate()) as ‘星期‘
select DateName(week,GetDate()) as ‘周數‘
select DateName(hour,GetDate()) as ‘時‘
select DateName(minute,GetDate()) as ‘分‘
select DateName(second,GetDate()) as ‘秒‘
技術分享

DatePart()獲取年月日

當前日期2014-06-19

select DatePart(YY,GETDATE())  2014
select DatePart(mm,GETDATE())  6 
select DatePart(dd,GETDATE())  19


回到頂部

獲取各種日期的方法

--1、本月第一天

SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)  
select convert(datetime,convert(varchar(8),getdate(),120)+‘01‘,120) 


--2.顯示本月最後一天

select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+‘01‘,120)) 
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))  


--

--3.上個月的最後一天

SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 

--4.本月的第一個星期一

select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)

--5.本年的第一天

SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) 

--6.本年的最後一天

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))

--7.去年的最後一天

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

--8.本季度的第一天

SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)  

--9.本周的星期一

SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0) 

--10.查詢本月的記錄

條件可寫為:

DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

--11.查詢本周的記錄

DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

--12.查詢本季的記錄

DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

--13.獲取當月總天數:

select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))

select datediff(day,dateadd(mm, datediff(mm,‘‘,getdate()), ‘‘), 
dateadd(mm, datediff(mm,‘‘,getdate()), ‘1900-02-01‘))

--14.獲取當前為星期幾

select DATENAME(weekday, getdate())

--15. dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值

例如:向日期加上2天

select dateadd(day,2,‘2014-10-15‘) --返回:2014-10-17 00:00:00.000

--16. datediff 返回跨兩個指定日期的日期和時間邊界數。

select datediff(day,‘2004-09-01‘,‘2004-09-18‘) --返回:17

--17. datepart 返回代表指定日期的指定日期部分的整數。

SELECT DATEPART(month, ‘2004-10-15‘) --返回 10 

年為year,月為month,日為day,小時hour,分為minute,秒為second

--18. datename 返回代表指定日期的指定日期部分的字符串

SELECT datename(weekday, ‘2004-10-15‘) --返回:星期五

--19. day(), month(),year() --可以與datepart對照一下

select 當前日期=convert(varchar(10),getdate(),120),當前時間=convert(varchar(8),getdate(),114)  
select datename(dw,‘2004-10-15‘)  
select 本年第多少周=datename(week,‘2004-10-15‘),今天是周幾=datename(weekday,‘2004-10-15‘)

回到頂部

函數 參數/功能

GetDate( ) --返回系統目前的日期與時間 
DateDiff (interval,date1,date2) --以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1 
DateAdd (interval,number,date) --以interval指定的方式,加上number之後的日期 
DatePart (interval,date) --返回日期date中,interval指定部分所對應的整數值 
DateName (interval,date)-- 返回日期date中,interval指定部分所對應的字符串名稱

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。

如果,您希望更容易地發現我的新博客,不妨點擊一下,【關註我

如果,您希望給我更多的鼓勵,不妨在右側點擊,【打賞一下

博文是自己對學習成果的總結,學習總結知識-》分析問題-》解決問題。

文中存在的觀點/描述不正確的地方,歡迎指正。

感謝您的閱讀,如果您對我的博客所講述的內容有興趣,請繼續關註我的後續博客,我是yxtic 。

sql中常見日期獲取