sql日期處理

2021-04-07 04:45:18 字數 2141 閱讀 7514

1、日期格式化處理

declare @dt datetime

set @dt=getdate()

--1.短日期格式:yyyy-m-d

select replace(convert(varchar(10),@dt,120),n'-0','-')

--2.長日期格式:yyyy年mm月dd日

--a. 方法1

select stuff(stuff(convert(char(8),@dt,112),5,0,n'年'),8,0,n'月')+n'日'

--b. 方法2

select datename(year,@dt)+n'年'+datename(month,@dt)+n'月'+datename(day,@dt)+n'日'

--3.長日期格式:yyyy年m月d日

select datename(year,@dt)+n'年'+cast(datepart(month,@dt) as varchar)+n'月'+datename(day,@dt)+n'日'

--4.完整日期+時間格式:yyyy-mm-dd hh:mi:ss:mmm

select convert(char(11),@dt,120)+convert(char(12),@dt,114)

2、日期推算處理

declare @dt datetime

set @dt=getdate()

declare @number int

set @number=3

--1.指定日期該年的第一天或最後一天

--a. 年的第一天

select convert(char(5),@dt,120)+'1-1'

--b. 年的最後一天

select convert(char(5),@dt,120)+'12-31'

--2.指定日期所在季度的第一天或最後一天

--a. 季度的第一天

select convert(datetime,

convert(char(8),

dateadd(month,

datepart(quarter,@dt)*3-month(@dt)-2,

@dt),

120)+'1')

--b. 季度的最後一天(case判斷法)

select convert(datetime,

convert(char(8),

dateadd(month,

datepart(quarter,@dt)*3-month(@dt),

@dt),

120)

+case when datepart(quarter,@dt) in(1,4)

then '31'else '30' end)

--c. 季度的最後一天(直接推算法)

select dateadd(day,-1,

convert(char(8),

dateadd(month,

1+datepart(quarter,@dt)*3-month(@dt),

@dt),

120)+'1')

--3.指定日期所在月份的第一天或最後一天

--a. 月的第一天

select convert(datetime,convert(char(8),@dt,120)+'1')

--b. 月的最後一天

select dateadd(day,-1,convert(char(8),dateadd(month,1,@dt),120)+'1')

--c. 月的最後一天(容易使用的錯誤方法)

select dateadd(month,1,dateadd(day,-day(@dt),@dt))

--4.指定日期所在周的任意一天

select dateadd(day,@number-datepart(weekday,@dt),@dt)

--5.指定日期所在周的任意星期幾

--a.  星期天做為一周的第1天

select dateadd(day,@number-(datepart(weekday,@dt)+@@datefirst-1)%7,@dt)

--b.  星期一做為一周的第1天

select dateadd(day,@number-(datepart(weekday,@dt)+@@datefirst-2)%7-1,@dt)

SQL日期處理 短日期

1 獲取當前日期 getdate 2 短日期 convert varchar 10 getdate 23 返回 2010 04 06 3 dateadd day,1,getdate 當前日期加1 日期部分 縮寫yearyy,yyyy quarterqq,q monthmm,m dayofyeardy...

SQL日期處理方法

一.日期處理函式 1.日期增減函式 dateadd datepart,number,dtae datepart 是規定應向日期的哪一部分返回新值的引數。下列是 sqlserver支援的日期部分 縮寫及含義。日期部分 縮寫 含義 year yy,yyyy 年份 quarter qq,q 季度 mont...

SQL時間日期處理

1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.datediff...