日期:2014-05-16  浏览次数:21041 次

Access中能不能判断字段值的数据类型?
我们有个时间字段,被设计成了文本类型,用语句怎么能判断哪些记录的该字段的内容是规范的日期型呢?



------解决方案--------------------
IsDate 函数 语言参考
版本 1


请参阅


--------------------------------------------

描述
返回 Boolean 值指明某表达式是否可以转换为日期。
语法
IsDate(expression)
expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。

说明
如果表达式是日期或可合法地转化为有效日期,则 IsDate 函数返回 True;否则函数返回 False。在 Microsoft Windows 操作系统中,有效的日期范围公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日;合法的日期范围随操作系统不同而不同。
------解决方案--------------------
应该直接用日期类型。

如果需要判断文本串是否能转换为日期型,用函数:


IsDate 函数


返回 Boolean 值,指出一个表达式是否可以转换成日期。

语法

IsDate(expression)

必要的 expression 参数是一个 Variant,包含日期表达式或字符串表达式,这里的字符串表达式是可以作为日期或时间来认定的。

说明

如果表达式是一个日期,或可以作为有效日期识别,则 IsDate 返回 True;否则返回 False。在 Microsoft Windows 中,有效日期的范围介于公元 100 年 1 月 1 日与公元 9999 年 12 月 31 日之间;其有效范围随操作系统不同而不同。


IsDate 函数示例
本示例使用 IsDate 函数判断表达式是否可以转换为日期格式。

Dim MyDate, YourDate, NoDate, MyCheck
MyDate = "February 12, 1969 ": YourDate = #2/12/69#: NoDate = "Hello "
MyCheck = IsDate(MyDate) ' 返回 True。
MyCheck = IsDate(YourDate) ' 返回 True。
MyCheck = IsDate(NoDate) ' 返回 False。



------解决方案--------------------
select * from 表 where sj is not null and sj <> ' ' and (ISDate(sj) or IsNumeric(left(sj,4)))


ISDate(sj) 这里的左括号应该是英文括号