关于ASP select语句中长日期与短日期比较的问题

使用环境为ASP+ACSESS数据库里时间为长日期格式现在要与短日期(变量)比交做SELECT筛选例:数据库为长日期格式:2013-05-3110:05:36变量为短日期... 使用环境为ASP+ACSESS

数据库里时间为长日期格式
现在要与短日期(变量)比交做SELECT筛选

例:
数据库为长日期格式:2013-05-31 10:05:36
变量为短日期格式:2013-05-31

我现在用
select * form mytalbe where 数据库里长日期字段名-指定短日期变量>=0

结果不包含当天指定日期(2013-05-31)数据,大家有什么办法没?

谢谢!

后来分析了一下
因为有分秒,出现=0(整点输入的数据)。。。基本不可能。。
查了百度说可以用转换函数,
但DateDiff 在SQL语句中出错,不能用
展开
 我来答
网海1书生
科技发烧友

2013-06-03 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26225

向TA提问 私信TA
展开全部
你描述得不是很清楚啊,不知道你需要的数据中要不要包含指定日期当天的数据,如果包含,那么你的SQL语句是没问题的,因为短日期格式2013-05-31相当于2013-05-31 00:00:00,那么用任何一个大于这个时刻的时间值去减这个时刻,结果必然是大于等于0的(等于0虽然不太可能,但大于0则是必须的,0.0001也是大于0啊)。

如果需要的数据中不想包含指定日期当天的数据(或者说要从第二天算起),则修改一下即可:
select * form mytalbe where 数据库里长日期字段名-指定短日期变量>=1。

补充说一句,在ACCESS的SQL语句中是可以用DateDiff的,不但如此,几乎所有VBA中的字符串函数、数值函数都可以在ACCESS中直接使用,因为这两种东西都是微软的亲生儿子。
比如用Format函数来处理日期是很方便的:
获取当天数据:select * form mytalbe where Format(日期字段,'yyyymmdd')=Format(Now(),'yyyymmdd')

获取当月数据:select * form mytalbe where Format(日期字段,'yyyymm')=Format(Now(),'yyyymm')

等等。
用DateDiff的话必须注意,如果日期是由SQL外部输入的,要用##做定界符,如:
rq="2013-05-31"
sql="select * form mytalbe where DateDiff('d',#" & rq & "#,长日期字段名)>=0"
还有一点要注意,较早的日期在前面,较晚的日期在后面
百度网友6bd2fbdae
2013-06-03 · TA获得超过200个赞
知道答主
回答量:194
采纳率:0%
帮助的人:54.7万
展开全部
俺不会,楼主
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式