REPLACE(CONVERT (char(50), GETDATE(), 111), '/', '-')
解析此句:
被搜索的字符串。original-string: CONVERT (char(50), GETDATE(), 111)
要搜索并被 replace-string 替换的字符串。search-string:'/'
该字符串用于替换 search-string。replace-string: '-'
SQL中可以使用Replace函数来对某个字段里的某些字符进行替换操作,语法如下:
语法
REPLACE ( original-string, search-string, replace-string )
参数
如果有某个参数为 NULL,此函数返回 NULL。
original-string 被搜索的字符串。可为任意长度。
search-string 要搜索并被 replace-string 替换的字符串。该字符串的长度不应超过 255 个字节。如果 search-string 是空字符串,则按原样返回原始字符串。
replace-string 该字符串用于替换 search-string。可为任意长度。如果 replacement-string 是空字符串,则删除出现的所有 search-string。
例子:
UPDATE tableName SET recordName=REPLACE(recordName,'abc','ddd')
将表tableName中的recordName字段中的 abc 替换为 ddd
这个函数有一点不足是不支持 text,ntext类型字段的替换,可以通过下面的语句来实现:
update tableName set recordName=replace(cast(recordName as varchar(8000)) ,'abc','ddd')
通过 cast 函数把text字段的内容转换为varchar类型再进行替换
SQLserver中用convert函数转换日期格式
为什么我要replace将convert中的"/"符,换成"-"呢.是因为convert在这里格式化出来的时间是:2007/05/22
还要特别说明一点:convert格式化出为的时间都是带有前有0的格式,比如2007-1-1 12:12:31结果为:
2007-01-01,所以你在查询前务必要将你的日期中的月和日中小于10(不包括10)的数字加上前导0,
如:1就应该为01
Convert的使用方法:
格式:
Convert(data_type,expression,[style])
说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.
例子:
Select Convert(varchar(30),getdate(),101) now
结果为
now
09/15/2001
style数字在转换时间时的含义如下: Style(2位表示年份) Style(4位表示年份) 输入输出格式
0 100 mon dd yyyy hh:miAM(或PM)
1 101 mm/dd/yy
2 102 yymmdd
3 103 dd/mm/yy
4 104 ddmmyy
5 105 ddmmyy
6 106 dd mon yy
7 107 mon dd,yy
8 108 hh:mm:ss
9 109 mon dd yyyy hh:mi:ss:mmmmAM(或PM)
10 110 mmddyy
11 111 yy/mm/dd
12 112 yymmdd
13 113 dd mon yyyy hh:mi:ss:mmm(24小时制)
14 114 hh:mi:ss:mmm(24小时制)
20 120 yyyymmdd hh:mi:ss(24小时制)
21 121 yyyymmdd hh:mi:ss:mmm(24小时制)