sql 的实用函数(包含日期函数、截取字符串函数)
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
可以使用的 style 值:
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 |
实例
下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:GETDATE()也可以换成对应的字段
CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113)
http://www.cnblogs.com/miaoying/p/5173324.html
--日期函数--
--GETDATE()获取当前系统日期
SELECT GETDATE()
SELECT GETDATE()+4 --加四天
SELECT DATEADD(mm,2,GETDATE())--加两个月
--DATEDIFF():找出两个日期的差异
SELECT DATEDIFF(yy,'1990-1-1',GETDATE())
--DATENAME():日期中指定日期部分的字符串形式
SELECT DATENAME(dw,GETDATE())--得到星期几
SELECT CAST( DATEPART(yyyy,GETDATE()) AS char(4))+'-'+CAST(DATEPART(mm,GETDATE())AS CHAR(2))+'-'+CAST( DATEPART(dd,GETDATE()) AS CHAR(2))
+'-'+CAST(DATEPART(hh,GETDATE())AS CHAR(2))+'-'+CAST(DATEPART(mi,GETDATE())AS CHAR(2))--日期不是字符串,所以要进行格式的转换
SELECT '1'+'1dsa'
SELECT CHARINDEX('woshi','woshimiaoyinga')--获得索引,sql的索引从1开始,而不是0
SELECT LEN('woshi是妙用')--获得字符串长度
SELECT LOWER('hdsAAAAAj')--将大写改为小写
SELECT UPPER('saieuDHSJAK')--将小写改为大写
SELECT REPLACE('hj回家撒谎的精神科好烦cja','h','m')--将字符串指定子字符串换为自定义的 如:h换为m
SELECT LTRIM(' sdahjhd ')--去掉左边空格
SELECT RTRIM(' sadhjd ')--去掉右边空格
--参数可以大于字符串的长度,但不可以是负值
SELECT RIGHT('sdhj啥空间和电视剧看',1)--从右边开始取出指定位数的子字符串
SELECT LEFT('sadmhfjh',3)
--取出邮箱的名称和域名
SELECT LEFT('miaoying.new@qq.com',12)
SELECT RIGHT('miaoying.new@qq.com',6)
SELECT RAND(10) --随机数
SELECT ABS(122234) --绝对值
SELECT CEILING(1.999) --得到比当前数大的最小整数
SELECT FLOOR(1.999)--得到比当前数小的最大整数
SELECT ROUND(1.4534545,1)--只关注小数点后一位
SELECT POWER(2,3)--表示2的3次方