日期:2014-05-18  浏览次数:20476 次

请问关于字符串型转为时间类型的问题

环境:VS.NET   2003     C#     ASP.NET_1.1.4322.573     +     SQLServer   2000

程序:由aspx页面向储存过程传一个字符串(含多个参数值,其中包含了一个时间值,参数值以逗号分隔,在储存过程中分解),然后将储存过程返回的结果集填充DataSet。

问题:在用DataAdapter将储存过程返回的结果集Fill(   dataset   )   时,提示varchar类型无法转为datatime类型。

测试:1、时间值加不加上单引号都报错;
            2、时间值写成“2007-08-01   01:01:01”、“2007-08-01”这两种格式都报错;
            3、不使用储存过程,而直接使用SQL语句时可以正常填充DataSet;
            4、不向储存过程传递时间值时可正常填充DataSet。

请问在保持向储存过程传递字符串(含时间值)这种形式的情况下,有没有什么办法可以解决这个问题?

谢谢!!



------解决方案--------------------
在存储过程中 cast/convert字符串转成时间试一下
------解决方案--------------------
转换一下~
------解决方案--------------------
sql 语句里改一下试试:

select convert(char(12),日期,102)as 日期 from table
------解决方案--------------------
提示varchar类型无法转为datatime类型。
=====
假设时间字段为a
用(cast a as datetime)转换

select a=(cast a as datetime) from A