sql server2000,如何对时间是char类型的数据进行 加减

sql server2000,如何对时间是char类型的数据进行 加减,第1张

首先 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码值看看是多少。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10090472.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存