VB6:CDate(某个日期)返回运行时错误13

bir*_*980 1 string vb6 date

HI,

我有这个字符串:"2010-12-27 23:05:36.0".当我用这样的CDate解析它:CDate("2010-12-27 23:05:36.0")它返回错误13.当我从字符串中删除'.0'时它工作正常.

日期字符串来自一个数据库,其中混合的日期格式如下:'yyyy-mm-dd'和'yyyy-mm-dd hh-MM-ss.n'什么是摆脱的简单方法错误13?

Pan*_*vos 5

最好的解决方案是不将日期存储为字符串.所有数据库都可以处理日期,ADO可以直接返回日期值而无需将它们转换为字符串.如果日期数据存储为日期类型,则可能根本不需要使用CDate.返回的记录集将包含基础数据作为Date变体.

如果数据毕竟存储为字符串,则可以修改SQL语句,以使用数据库的内置函数将字符串转换为日期.在SQL Server中,您可以使用CAST和CONVERT函数执行此操作,例如

CAST(myDateAsTextField as datetime)
Run Code Online (Sandbox Code Playgroud)

SQL Server的DATETIME数据类型接受1到3位的小数秒.

最后,您可以在调用CDate之前检查字符串的内容并将其转换为其他形式.如果您无法在数据库级别修复数据,则应将此用作最后的手段.