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

时间:2011-04-12 09:31:08

标签: string date vb6

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?

2 个答案:

答案 0 :(得分:5)

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

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

CAST(myDateAsTextField as datetime)

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

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

答案 1 :(得分:1)

您可以检查字符串长度 - >如果它是> 19,则去除其余部分然后应用CDate函数