SQL Server 与 MySQL 函数差异
1、+ 与 concat()2、dateadd() 与 date_add()3、getdate() 与 now()4、cast() 函数5、charindex() 与 locate()6、len()/datalength() 与 char_length()7、convert() 与 date_format()8、isnull() 与 ifnull()9、 replicate() 与 repeat()10、STUFF() 与 INSERT()11、for xml path('')与 group_concat()
1、+ 与 concat()
SQL Server 的字符串拼接采用 “+” 完成,而 MySQL 采用 concat () 函数。
示例:
SQL ServerMySQL备注
‘a’+‘b’concat (‘a’,‘b’)字符串拼接 + >> concat (str1,str2,……)
2、dateadd() 与 date_add()
SQL ServerMySQL备注
dateadd (datepart,number,date)date_add (date,INTERVAL expr type)
示例:
SQL ServerMySQL备注
dateadd (yy, -1, getdate())date_add( now(), INTERVAL -1 YEAR)当前时间之前一年dateadd (day, 5, getdate())date_add( now(), INTERVAL 5 DAY)当前时间后五天
3、getdate() 与 now()
获取当前时间
SQL ServerMySQL备注
getdate()now()获取当前时间
4、cast() 函数
以下表格中,par均为转换的参数
SQL ServerMySQL备注
cast (par as decimal(18,2)cast (par as decimal(18,2)decimal类型两者通用cast (par as varchar)cast (par as char(20))char的位数按需要自定cast (par as int)cast (par as signed)cast (par as float )cast (par as decimal(24,2) )decimal(24,2)小数点位数,视情况自定cast (par as numeric(12, 2))cast (par as decimal(12, 2))
5、charindex() 与 locate()
SQL ServerMySQL备注
charindex (str1, str2)locate (str1, str2)
6、len()/datalength() 与 char_length()
SQL ServerMySQL备注
len (str)char_length (str)字符串str包含的字符个数datalength (str)char_length (str)字符串str包含的字符个数
7、convert() 与 date_format()
SQL ServerMySQL备注
convert (varchar(100), par, 20)date_format (par, ‘%Y-%m-%d %H:%i:%s’)转换时间格式convert (varchar(20), par, 23)date_format (par, ‘%Y-%m-%d’)转换时间格式convert (varchar(50), par)convert (par, char(50))转字符串
8、isnull() 与 ifnull()
SQL ServerMySQL备注
isnull (str1, str2)ifnull (str1, str2)如果为空
9、 replicate() 与 repeat()
SQL ServerMySQL备注
replicate (s, n)repeat (s, n)返回由n个s组成的字符串
10、STUFF() 与 INSERT()
SQL ServerMySQL备注
stuff (s1, x, len, s2)insert (s1, x, len, s2)返回字符串s1,其字符串串起始于 x 位置和被字符串 s2 取代的 len 字符
11、for xml path(’’)与 group_concat()
SQL ServerMySQL备注
for xml path(’’)group_concat()详细说明.