首页 新闻 会员 周边 捐助

SQL新手求助

0
[待解决问题]

刚开始学习编程,下面这句代码不带理解,求详解,最好说明每个部分

set@CardId=@getCardId+replace(replace(replace(convert(varchar(20),getdate(),120),'-',''),'',''),':','')

Ghost_1的主页 Ghost_1 | 初学一级 | 园豆:150
提问于:2013-05-29 20:53
< >
分享
所有回答(4)
0

首先看到这么多括号容易犯蒙,所以根据学习其他语言的经验从内部想外进行分析。

vonvert(type,varValue,format); 这个是语法,第一个参数是说转换后的类型,value要转换的值,formate按照什么格式进行转换。

replace(varString,'var',var);第一个是要替换的值,第二个是替换的条件,第三个是替换后的值,将varstring中符合条件二的值全部替换成第三个参数的值。

总的意思是:给@cardId变量赋值,将一个时间类型的值转换成指定的格式进行赋值得到的结果是 @getCardId的值和 替换后的一个字符串的值所拼起来的结果。

上帝李 | 园豆:204 (菜鸟二级) | 2013-05-29 23:14
0

一步一步来,convert(varchar(20),getdate(),120)是将当前时间改为字符串类型,如'2013-5-30 09:00:00',

replace(如'2013-5-30 09:00: 00','-','')是去掉字符串中的‘-’,然后是去掉':',最后,就成了'2013530090000',一个当前时间的数字表现形式,你这里应该还少了一步,将2013530090000转化为整数类型。。。

 

希望是你要的答案

休小晓 | 园豆:21 (初学一级) | 2013-05-30 09:56
0

因为都是新手,所以对我们来说确实有点复杂!你可以在sql里面去拆分,这里最主要是替换的层次有点多!所以建议你在sql里面拆分理解。

新星李切 | 园豆:146 (初学一级) | 2013-07-02 13:06
0

这么看确实困难,我一般遇到这种语句都是逐层运行来查看的,运行过之后以后遇到就很易理解了。

panjk | 园豆:712 (小虾三级) | 2013-07-11 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册