
首先 201702 即使是char型也不是一个完整地可以转化成日期型的格式,至少需要年月日三段
--(1)把你的char补充成完整地日期格式char,我在后面补充01,这样20170201就是可转换--的格式select '201702'+'01'
--(2)转换成日期型,用cast方法
select cast('201702'+'01' as smalldatetime)
--这样就成时间类型了, 然后你进行日期加减计算,用dateadd
select dateadd( mm, 1,cast('201702'+'01' as smalldatetime) )
--dateadd这个函数第一个参数是单位,year年,mm月,day是日,mi分钟,ss秒
--第二个参数是数量,例子是1,就是加1个月
--第三个参数就是要变化的时间
主函数最后一行补个
return 0 //好习惯char 类型8bit转化int值是0-255(asc2码表可以看到对应符号)。
char a=-128;//int(一般32bit)对char赋值,-128符号在首位(32)应该被切掉,a=128了c=a+b;//+ char转化成int运算,c=256,但c只有8位c=0
c-a==b;//同理,0-128=-128而b=128,所以返回false
(char)(c-a)==b;//-128强制转换为char除去负号,返回true
问题很多。首先b数组的长度为2,那么b[2]为"\n",而且你输入123至右前两个数字能被存入数组。
其次,加减也有问题,你对字符的加减理解有点问题,字符的加减的结果看的是ASCII码,比如'1'+1=2,事实上是49+1=50,而50对应的ASCII是2,你可以看看自己的加减,把字符换算成ASCII码值看看是多少。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)