mssql 经常使用函数概览

类型转换

  • 字符串 -数值
--字符串->整数
convert(int,'1')
cast('1' as int)
--整数->字符串
convert(varchar(10),2332)
  • 字符串 - 日期
--日期->字符串
select CONVERT(varchar(50),GETDATE(),120)
--字符串->日期
select CONVERT(datetime,'2015-12-20',120)

Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM

字符串操做


LOWER('AaaA')	 	--aaaa
UPPER('AaaA') 	 	--AAAA
LTRIM(' aa ')	 	--aa  
RTRIM(' aa ')	 	-- aa
left('abcde',3)	 	--abc
right('abcde',3)	 	--cde
subString('abcde',2,3) 	--bcd
REPLACE('abcbe','b','x')--axcxe
space(3)			--   (三个空格,若是参数为负值,则返回null)
stuff('abcde',2,3,'x')	--axe  
--stuff(被操做字符,起始位置,长度,替换字符)
--[起始位置]<0 ||[长度]<0 || [起始位置] > [被操做字符]长度 结果为 null




数值操做


ROUND(12.3464,2) -- 12.35




日期操做

  • 取得当前日期
select getDate()
  • 两日期间的范围值
select DATEDIFF(day,CONVERT(datetime,'2015-12-20',120),GETDATE())--天
select DATEDIFF(s,CONVERT(datetime,'2015-12-20',120),GETDATE())--秒
select DATEDIFF(yy,CONVERT(datetime,'2015-12-20',120),GETDATE())--年
select DATEDIFF(hh,CONVERT(datetime,'2015-12-20',120),GETDATE())--小时
  • 取得年,月,日,时,分,秒的值
DatePart(w,'2005-7-25 22:56:32')返回值为 2 星期一(周日为1,周六为7)  
DatePart(d,'2005-7-25 22:56:32')返回值为 25
DatePart(y,'2005-7-25 22:56:32')返回值为 206 这一年中第206天
DatePart(yy,'2005-7-25 22:56:32')返回值为 2005
day(getdate())    --当天
month(getDate())  --月份
year(getDate())   --年
  • 日期增减
DATEADD(day,1,getDate())--明天
DATEADD(d,-1,getDate())--昨天



datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

其他经常使用操做

isnull(null,'') --若是null就返回第二个参数值


参考博文: http://blog.csdn.net/yuanhuiqiao/article/details/4775777 sql

相关文章
相关标签/搜索