[转载]使用日期/时间型数据类型的一些基本问题(ACCESS中测试)

[原创]使用日期/时间型数据类型的一些基本问题(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了。

以上就是在使用时间/日期型数据类型中常见的三个小常识,这也是我在最近使用中摸索出来的,供还不习惯使用时间/日期型数据类型的朋友一点小提示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值