表结构如下:

datekey为nvarchar类型 现在想保持datekey的格式不变的前提下,将datekey转换为日期类型我尝试如下

转换出来格式总是个不对,请大神指教下,该怎么转换?
------解决方案--------------------
没有“20080101”格式的date类型这种东西!
如果 cognos 需要字符串"20080101",你的数据库字段已经是字符串了,直接给它 datekey;
如果 cognos 需要整数 20080101,给它 Convert(int, datekey);
如果 cognos 需要日期 2008-1-1,给它 Convert(datetime,datekey,112),至于 cognos 准备如何输出,再设它的格式好了。
------解决方案--------------------
我尝试转换格式
同样是把nvarchar转换为date,用cast函数转换另外一个表就OK,但同样的语法转换上面的表就报错,上面的表我也确认过,没有空值什么的
SELECT Convert(datetime,'20140231',112)
这不就出错了!
所以日期数据还是用 datetime 存储,显示输出时再按需要格式化。
否则多出各种麻烦来。
用下面的语句找出错的数据吧。
SELECT *
FROM zg_sales_des
WHERE ISDATE(outdate)=0

