计算两个日期之间的天数问题!!!!!!!!!!!!!应该是简单问题!

mjldnz6 2006-08-28 05:34:59
之前从未接触过asp,现在公司要我改点以前的程序,实在写不来,请各位帮忙!

现在通过 set rs=Conn.execute(sel_sql)得到
rs("MyDate")="2006-7-25 16:07:21"(rs("MyDate")都比当前系统时间小)
在asp中怎么实现
(1)
Now() - rs("MyDate")
首先获得这两个时间之间的天数 intTianshu。
获得intTianshu后还要判断,若rs("MyDate")是当天下午5点以后即(17:00:00以后如2006-7-25 17:00:01 )
则intTianshu =intTianshu-1
(2)
表tableA中有一字段Holiday
要再count一下,如:
select count(*) from tableA where rs("MyDate")<Holiday and Now()>Holiday 得到的数目countShu

(1)(2)综合起来,最后要的结果是:intTianshu =intTianshu-1 -countShu 或intTianshu =intTianshu-

countShu
------------
之前从未接触过asp,请各位大侠写详细点,谢谢了!
...全文
345 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
longli67 2006-08-31
  • 打赏
  • 举报
回复
用效率交高的SQL语句
参考语句如下:
(dateDiff(d,a.Date, b.RecCreateDate)-(select count(*) from Holiday where Holiday> a.Date and Holiday< b.RecCreateDate)- (case when dateDiff(d,a.Date, b.RecCreateDate)= '0' then '0' else (case when datediff(s,'17:00:00',convert(varchar(10),a.Date,108))>=0 then'1' else '0' end)end)) as inttianshu……
taochunsong 2006-08-30
  • 打赏
  • 举报
回复
(1)两种方法,用iif()或者判断mydate的值时候大于17点再决定加减一
Now() - rs("MyDate")
首先获得这两个时间之间的天数 intTianshu。
获得intTianshu后还要判断,若rs("MyDate")是当天下午5点以后即(17:00:00以后如2006-7-25 17:00:01 )
if hour(mydate())>=17 then
intTianshu =intTianshu-1
end if
或者intTianShu = DateDiff("d",myDate,now()) + iif(right(myDate,8)>"17:00:00",-1,0)
(2)
表tableA中有一字段Holiday
要再count一下,如:
select count(*) from tableA where rs("MyDate")<Holiday and Now()>Holiday 得到的数目countShu

(1)(2)综合起来,最后要的结果是:
countShu = rs(0)
intTianShu =intTianShu-countShu
邦迪代驾 2006-08-29
  • 打赏
  • 举报
回复
datediff函数
leohuang 2006-08-29
  • 打赏
  • 举报
回复
try
------------------------
myDate = rs("MyDate")
intTianShu = DateDiff("d",myDate,now()) + iif(right(myDate,8)>"17:00:00",-1,0)
countShu = rs(0)
intTianShu =intTianShu-countShu

wspipeng 2006-08-29
  • 打赏
  • 举报
回复
用DatePart函数把时间提取出来再进行比较判断。
DatePart 函数 语言参考
版本 2


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

描述
返回给定日期的指定部分。
语法
DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
DatePart 函数的语法有以下参数:

参数 描述
interval 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。
date 必选。要计算的日期表达式。
firstdayof week 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。


设置
interval 参数可以有以下值:
设置 描述
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
m 分钟
s 秒


firstdayofweek 参数可以有以下值:

常数 值 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


firstweekofyear 参数可以有以下值:

常数 值 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。



说明
DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。
firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。

如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
mjldnz6 2006-08-29
  • 打赏
  • 举报
回复
怎么判断是否是当天的17点以后呢?
taochunsong 2006-08-28
  • 打赏
  • 举报
回复
现在不知道你要算个什么
要解决一个什么样的问题?
给你个链接看看


如果要算两天的差的情况请看
http://www.laotao.cn/article.asp?id=43

或许对你有点帮助
neibu 2006-08-28
  • 打赏
  • 举报
回复
如datediff("s",NOW(),rs("MyDate"))
neibu 2006-08-28
  • 打赏
  • 举报
回复
rs("date")=dateadd("m",12,date())
数据库中的date时间字段等于现在的时间加一年的时间
如果想减少的话,那么请在数字前加一个"-"减号即可

DateAdd("h",13,Now())其中"h"代表小时,13代表加上13小时,now()是现在的日期时间,也可以"h"可以改变:
设置 描述
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
n 分钟
s 秒

时间相减的语句datediff("s","1999/12/31","2000/12/31")
举例如a=2000/12/31 b=1999/12/31
意思也就是比如a减去b的方式如下<%=datediff("m",b,a)%>
mjldnz6 2006-08-28
  • 打赏
  • 举报
回复
自己先支持支持下!

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧