sqlserver日期函數


*--*  定義變量 

declare @datetim date
set @datetim = getdate()

*--* eomonth函數求日期月份最后一天日期(sql 2012)

SELECT EOMONTH (GETDATE()) --EOMONTH (@data, @num) num傳入數值對應當前月份+num的月份

  

*--* 獲取當前年、月、日

select year(getdate())
select month(getdate())
select day(getdate())

*--* DATEDIFF() 函數

select DATEDIFF(yy,'1900-01-01',getdate())--當前時間與1900-01-01差值(yy 單位年)

*--* DATEADD() 函數在日期中添加或減去指定的時間間隔

select DATEADD(mm,1,getdate())--mm表示月,結果為下一月份的當前時間

 

 

 

 

 

 

 

 

 

 

 

 

 

select dateadd(dd,-day(getdate())+1,getdate())--當前月份第一天
select DATEADD(mm, DATEDIFF(m,0,getdate()), 0)--當前月份第一天時分秒為00:00:00.000
select dateadd(dd,-day(getdate()),getdate()) --上月份最后一天 
select CONVERT(DATETIME, EOMONTH (GETDATE()), 120) --本月份最后一天(sql2012以上適用) 00:00:00.000
select dateadd(mm, 1, dateadd(dd,-day(getdate())+1,getdate()))-1 --本月份最后一天 
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))--本月最后一天 時分秒為23:59:59.997
select dateadd(year, datediff(year, 0, getdate()), 0)-- 當年第一天
select dateadd(year, datediff(year, 0, dateadd(year, 1, getdate())), -1)-- 當年最后一天
SELECT dateadd(ms,-2,DATEADD(year, DATEDIFF(year,1,getdate())+1, 0))--當年最后一天 時分秒為23:59:59.997

 *--*  convert 日期字符串相互轉換。

select CONVERT(DATETIME, '2019-01-02', 120) --結果 2019-01-02 00:00:00.000
select CONVERT(VARCHAR(10), GETDATE(), 120)-- 結果 2019-07-23

select CONVERT(DATETIME, '20190102', 112) --結果 2019-01-02 00:00:00.000
select CONVERT(VARCHAR(9), GETDATE(), 112) --結果 20190723

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM