SQl datetime相關操作

2021-06-02 03:24:27 字數 2192 閱讀 4309

一、日期格式化處理

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)

select convert(varchar(8),getdate(),112)     ------20090609

二、日期推算處理

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 datetime格式處理

sql datetime格式處理 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 ...

SQL DateTime日期格式 CONVERT

select convert varchar 100 getdate 0 05 16 2006 10 57am select convert varchar 100 getdate 1 05 16 06 select convert varchar 100 getdate 2 06.05.16 se...

sql datetime獲取本週,本月,本年

dateadd wk,datediff wk,0,getdate 1 2dateadd wk,datediff wk,0,getdate 6 34dateadd mm,datediff mm,0,getdate 0 5dateadd ms,3,dateadd mm,datediff m,0,getd...