*--* 定義變量
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

