[原创]使用日期/时间型数据类型的一些基本问题(ACCESS中测试)
|
最近在做一个订单查询模块的时候,接触到比较多的一些关于日期/时间型的数据,这里面讲一些我在使用这些数据类型时所遇到一些很常见的问题吧! 1、怎样判断输入的数据是否为日期/时间型的数据类型。在使用文本框进行日期输入时设置了三个文本框,分别对应年、月、日,这样当访问者使用时就可能不小心选择了2月30日这样的日期,这样的日期肯定是错误的,怎样才能判断输入的是正确的日期呢?在这里假设年月日的输入值分别赋给date_year,date_month,date_day三个变量,我在这里首先把三个值组合起来形成一个日期/时间型的数据格式(yyyy-mm-dd形式)<% date_ymd=(cstr(date_year)&"-"&cstr(date_month)&"-"&cstr(date_day))%>,这样date_ymd就成为了一个类似日期/时间型的数据类型了,下面我们就来把这个date_ymd格式化为日期/时间型的数据,<%date_ymd=FormatDateTime(date_ymd)%>,格式化之后我们就可以判断是否为正确的日期了(利用date_ymd是否为空判断,因为经过FormatDateTime格式化之后,如果值为空则不是正确日期,不为空则为正确日期), <% if date_ymd="" then response.write"您输入的不是正确日期,请重新输入" response.end end if %>。 2、如何在SQL语句中使用日期/时间型的数据类型。这里有两种:一是使用日期/时间型的数据,二是使用日期/时间型数据的变量。其实两者是一样的,只是常量跟变量的区别,下面举例说明一下: a.使用日期/时间型常量:<%sql="select * from date_table where date_table.date_time>=#2004-6-11#"%> b.使用日期/时间型变量:在这里首先要判断该变量是否为正确的日期,在第1点里面已经说过方法了,我们在这里设date_ymd是经过判断之后的正确日期,<%sql="select * from date_table where date_table.date_time>=#"&date_ymd&"#"%>,在这里我们可以看出,在SQL语言中,是把日期/时间型数据类型近似当作数值型数变量处理的。 3、进行日期/时间型数据比较时的一个小常识。在第2点里面用到>=,说明日期/时间型数据是可以进行大小比较的,但在使用时,我发现当SQL语句中当"date_table.date_time"为长日期/时间数据类型(yyyy-mm-dd hh:mm:ss)时,使用"<=#2004-6-11#"时,也就是说在使用"<="比较操作时,不论使用的是"<"还是"<="操作,操作的结果都是只能查询出"2004-6-10"的数据记录,不能把"2004-6-11"的数据记录查询出来,也就是说刚才的日期比预计的日期要少了一天。当然在使用短日期/时间型时就不会出现这种问题。原来在使用"2004-6-11"这种短日期/时间数据类型时,会默认的转换为"2004-6-11 00:00:00",知道是什么原因了,那么解决起来就不难了。把"2004-6-11"改为长时间/日期型数据类型"2004-6-11 23:59:59",如果是变量的话, <% date_ymd=cstr(date_year)&"-"&cstr(date_month)&"-"&cstr(date_day)&" 23:59:59" date_ymd=FormatDateTime(date_ymd) %> ,这样就OK了。 以上就是在使用时间/日期型数据类型中常见的三个小常识,这也是我在最近使用中摸索出来的,供还不习惯使用时间/日期型数据类型的朋友一点小提示。 |
[转载]使用日期/时间型数据类型的一些基本问题(ACCESS中测试)
最新推荐文章于 2022-08-05 12:59:05 发布