刚开始学习编程,下面这句代码不带理解,求详解,最好说明每个部分
set@CardId=@getCardId+replace(replace(replace(convert(varchar(20),getdate(),120),'-',''),'',''),':','')
首先看到这么多括号容易犯蒙,所以根据学习其他语言的经验从内部想外进行分析。
vonvert(type,varValue,format); 这个是语法,第一个参数是说转换后的类型,value要转换的值,formate按照什么格式进行转换。
replace(varString,'var',var);第一个是要替换的值,第二个是替换的条件,第三个是替换后的值,将varstring中符合条件二的值全部替换成第三个参数的值。
总的意思是:给@cardId变量赋值,将一个时间类型的值转换成指定的格式进行赋值得到的结果是 @getCardId的值和 替换后的一个字符串的值所拼起来的结果。
一步一步来,convert(varchar(20),getdate(),120)是将当前时间改为字符串类型,如'2013-5-30 09:00:00',
replace(如'2013-5-30 09:00: 00','-','')是去掉字符串中的‘-’,然后是去掉':',最后,就成了'2013530090000',一个当前时间的数字表现形式,你这里应该还少了一步,将2013530090000转化为整数类型。。。
希望是你要的答案
因为都是新手,所以对我们来说确实有点复杂!你可以在sql里面去拆分,这里最主要是替换的层次有点多!所以建议你在sql里面拆分理解。
这么看确实困难,我一般遇到这种语句都是逐层运行来查看的,运行过之后以后遇到就很易理解了。