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?
答案 0 :(得分:5)
最佳解决方案是不将日期存储为字符串。所有数据库都可以处理日期,ADO可以直接返回日期值而无需将它们转换为字符串。如果日期数据存储为日期类型,则可能根本不需要使用CDate。返回的记录集将包含基础数据作为日期变体。
如果数据毕竟存储为字符串,您可以修改SQL语句,使用数据库的内置函数将字符串转换为日期。在SQL Server中,您可以使用CAST和CONVERT函数执行此操作,例如
CAST(myDateAsTextField as datetime)
SQL Server的DATETIME
数据类型接受1到3位的小数秒。
最后,您可以在调用CDate之前检查字符串的内容并将其转换为其他形式。如果您无法在数据库级别修复数据,则应将此作为最后的手段。
答案 1 :(得分:1)
您可以检查字符串长度 - >如果它是> 19,则去除其余部分然后应用CDate函数