sql日期函式

2021-09-24 15:35:44 字數 4821 閱讀 7174

一.字元操作

1.替換指定字元

str_replace(string1,需要替換字元,替換成字元)

substring(string1,,)

二.數值操作

三.日期操作

getdate() 

得到當前時間,可以設定得到各種時間格式.

datepart(日期部分,日期) 

取指定時間的某乙個部分,年月天時分秒. 

datediff(日期部分,日期1,日期2) 

計算指定的日期1和日期2的時間差多少. 

dateadd(日期部分,數值表示式,日期) 

計算指定時間,再加上表示式指定的時間長度.

--取前幾天

'dataadd(day,-10,getdate())'

--取時間的某乙個部分 

select datepart(yy,getdate()) --year 

select datepart(mm,getdate()) --month 

select datepart(dd,getdate()) --day 

select datepart(hh,getdate()) --hour 

select datepart(mi,getdate()) --min 

select datepart(ss,getdate()) --sec

--取星期幾

set datefirst 1 

select datepart(weekday,getdate()) --weekday

--字串時間

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 

select convert(varchar(100), getdate(), 3): 16/05/06 

select convert(varchar(100), getdate(), 4): 16.05.06 

select convert(varchar(100), getdate(), 5): 16-05-06 

select convert(varchar(100), getdate(), 6): 16 05 06 

select convert(varchar(100), getdate(), 7): 05 16, 06 

select convert(varchar(100), getdate(), 8): 10:57:46 

select convert(varchar(100), getdate(), 9): 05 16 2006 10:57:46:827am 

select convert(varchar(100), getdate(), 10): 05-16-06 

select convert(varchar(100), getdate(), 11): 06/05/16 

select convert(varchar(100), getdate(), 12): 060516 

select convert(varchar(100), getdate(), 13): 16 05 2006 10:57:46:937 

select convert(varchar(100), getdate(), 14): 10:57:46:967 

select convert(varchar(100), getdate(), 20): 2006-05-16 10:57:47 

select convert(varchar(100), getdate(), 21): 2006-05-16 10:57:47.157 

select convert(varchar(100), getdate(), 22): 05/16/06 10:57:47 am 

select convert(varchar(100), getdate(), 23): 2006-05-16 

select convert(varchar(100), getdate(), 24): 10:57:47 

select convert(varchar(100), getdate(), 25): 2006-05-16 10:57:47.250 

select convert(varchar(100), getdate(), 100): 05 16 2006 10:57am 

select convert(varchar(100), getdate(), 101): 05/16/2006 

select convert(varchar(100), getdate(), 102): 2006.05.16 

select convert(varchar(100), getdate(), 103): 16/05/2006 

select convert(varchar(100), getdate(), 104): 16.05.2006 

select convert(varchar(100), getdate(), 105): 16-05-2006 

select convert(varchar(100), getdate(), 106): 16 05 2006 

select convert(varchar(100), getdate(), 107): 05 16, 2006 

select convert(varchar(100), getdate(), 108): 10:57:49 

select convert(varchar(100), getdate(), 109): 05 16 2006 10:57:49:437am 

select convert(varchar(100), getdate(), 110): 05-16-2006 

select convert(varchar(100), getdate(), 111): 2006/05/16 

select convert(varchar(100), getdate(), 112): 20060516 

select convert(varchar(100), getdate(), 113): 16 05 2006 10:57:49:513 

select convert(varchar(100), getdate(), 114): 10:57:49:547 

select convert(varchar(100), getdate(), 120): 2006-05-16 10:57:49 

select convert(varchar(100), getdate(), 121): 2006-05-16 10:57:49.700 

select convert(varchar(100), getdate(), 126): 2006-05-16t10:57:49.827 --整數時間

select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646

--時間格式 "yyyy.mm.dd hh:mi:ss" 轉換為 "yyyymmddhhmiss"

declare @a datetime,@tmp varchar(20),@tmp1 varchar(20) 

select @a=convert(datetime,'2004.08.03 12:12:12') 

select @tmp=convert(char(10),@a,112) 

select @tmp 

select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a)) 

select @tmp1 

select @tmp=@tmp+@tmp1 

select @tmp

--當月最後一天

declare 

@tmpstr varchar(10) 

@mm int, 

@premm int, 

@curmmlastday varchar(10) 

begin 

select @mm=datepart(month,getdate())--當月 

select @premm=datepart(month,dateadd(month,-1,getdate())) --上個月 

if (@mm>=1 and @mm<=8) 

select @tmpstr=convert(char(4),datepart(year,getdate()))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01' 

else if (@mm>=9 and @mm<=11) 

select @tmpstr=convert(char(4),datepart(year,getdate()))+'.'+convert(char(2),datepart(month,dateadd(month,1,getdate())))+'.'+'01' 

else 

select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01' 

select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --當月最後一天 

end

sql日期函式

一.字元操作 1.替換指定字元 str replace string1,需要替換字元,替換成字元 substring string1,二.數值操作 三.日期操作 getdate 得到當前時間,可以設定得到各種時間格式.datepart 日期部分,日期 取指定時間的某乙個部分,年月天時分秒.dated...

SQL日期函式

sql日期函式中的型別碼可以為0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 20,21,22,23,24,25,100,101,102,103,104,105,106,107,108,109,100,110,111,112,113,114,120,121,126,127,13...

SQL日期函式

日期函式提供了常用的日期 時間資訊處理功能,比如截斷 計算時間差等。oracle常用日期函式如表4 4所示。常用日期函式 函 數 功 能 用法 add months x,y 計算在日期x基礎上增加y個月後的日期 add months sysdate,2 last day x 返回日期x當月最後一天的...