试用分别运行以下两条sql 语句:
SELECT convert(datetime, '2014-10-17 19:19:42', 120)
SELECT convert(datetime, '2014-10-17 19:19:42', 120)
第一条会出现错误,第二条会正常转换
为什么会这样?
第一条的字符串是从一个文件夹的右健属性"创建日期"里复制过来的,是unicode编码,
第二条的字符串是手动输入的是,是ascii编码。
convert解析字符串是按ascii编码来识别的,所以对第一个字符串就无法正确解析。
另外,在sql server management studio 2012的查询窗口里,把光标定位到字符串里,然后用健盘左右箭头健来移动光标,可以发现:对于unicode编码的字符,需要移动两次才能移动一个位置,对于ascii码,移动一次即可以移动一个位置。
如果用 select ascii(')可以发现,第一个字符串结果是63,第二个结果是50