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