asp 循环插入Access

zty0527 2008-04-13 03:02:08
在asp中利用循环把当前日期 到 当月最后一天之间的所有时间插入表temp_date

表名temp_date,字段 date

插入结果显示:

2008-4-13
2008-4-14
2008-4-15
...
2008-4-30

...全文
143 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsf5921 2008-04-13
  • 打赏
  • 举报
回复
<%
MaxDay= datediff("d",now(),cdate(Year(now()) &"-"& Month(now())+1)
for i=0 to MaxDay - 1
rs.addnew
rs("ccdate")=DateAdd("d",i,now())
rs.update
next
%>
jnwentao 2008-04-13
  • 打赏
  • 举报
回复
忽略了一个细节
Month(date)+1
如果当前月是12月会出现错误
改为这样吧
for i=1 to datediff("d",date,DatePart("yyyy",dateadd("m",1,date))&"-"&DatePart("m",dateadd("m",1,date)))- 1
response.write DateAdd("d",i,date)
next
datediff 返回两个日期之间的间隔它会自动判断当前月份的天数不需要去设置

如果参数只指定了年与月时它会自动识别为指定月份的第1天
myvicy 2008-04-13
  • 打赏
  • 举报
回复
2楼的不错。
  • 打赏
  • 举报
回复
修正下11楼的
Function   MaxDayOfMonth(workdate)    
Select Case month(workdate)
Case "1"
maxDay = 31
Case "2" '这里是计算2月份是否闰年
If (year(workdate) Mod 100<>0 and year(workdate) Mod 4 = 0) or (year(workdate) Mod 400 = 0) then
maxDay = 29
Else
maxDay = 28
End If
Case "3"
maxDay = 31
Case "4"
maxDay = 30
Case "5"
maxDay = 31
Case "6"
maxDay = 30
Case "7"
maxDay = 31
Case "8"
maxDay = 31
Case "9"
maxDay = 30
Case "10"
maxDay = 31
Case "11"
maxDay = 30
Case "12"
maxDay = 31
End Select

MaxDayOfMonth = maxDay-int(day(workdate))'这里计算当天距离月底的天数
End Function
for i=0 to MaxDayOfMonth(date())
rs.addnew
rs("ccdate")=DateAdd("d",i,date)
rs.update
next
zl_c 2008-04-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 chinmo 的回复:]
引用 7 楼 zl_c 的回复:
用存储过程最好,不用逐条插入.


汗!!ACCESS哪来的存储过程?
[/Quote]

惭愧,没有看清题。
小逗狗 2008-04-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 chinmo 的回复:]
VBScript codeFunction MaxDayOfMonth(workdate)
Select Case month(workdate)
Case "1"
maxDay = 31
Case "2" '这里是计算2月份是否闰年
If (work_year Mod 100<>0 and work_year Mod 4 = 0) or (work_year Mod 400 = 0) then
maxDay = 29
Else
maxDay = 28
End If
Case "3"
maxDay = 31
Case…
[/Quote]
不错,最好的方法了
  • 打赏
  • 举报
回复
当然最简单 方法就是利用datediff和DateAdd

<%
MaxDayOfMonth= datediff("d",date(),cdate(Year(date()) &"-"& Month(date())+1))
for i=0 to MaxDayOfMonth-1
rs.addnew
rs("ccdate")=DateAdd("d",i,date)
rs.update
next
%>
  • 打赏
  • 举报
回复
Function   MaxDayOfMonth(workdate)    
Select Case month(workdate)
Case "1"
maxDay = 31
Case "2" '这里是计算2月份是否闰年
If (work_year Mod 100<>0 and work_year Mod 4 = 0) or (work_year Mod 400 = 0) then
maxDay = 29
Else
maxDay = 28
End If
Case "3"
maxDay = 31
Case "4"
maxDay = 30
Case "5"
maxDay = 31
Case "6"
maxDay = 30
Case "7"
maxDay = 31
Case "8"
maxDay = 31
Case "9"
maxDay = 30
Case "10"
maxDay = 31
Case "11"
maxDay = 30
Case "12"
maxDay = 31
End Select

MaxDayOfMonth = maxDay-int(day(workdate))'这里计算当天距离月底的天数
End Function
for i=0 to MaxDayOfMonth(date())
rs.addnew
rs("ccdate")=DateAdd("d",i,date)
rs.update
next
  • 打赏
  • 举报
回复
Function   MaxDayOfMonth(workdate)    
Select Case month(workdate)
Case "1"
maxDay = 31
Case "2" '这里是计算2月份是否闰年
If (work_year Mod 100 <> 0 and work_year Mod 4 = 0) or (work_year Mod 400 = 0) then
maxDay = 29
Else
maxDay = 28
End If
Case "3"
maxDay = 31
Case "4"
maxDay = 30
Case "5"
maxDay = 31
Case "6"
maxDay = 30
Case "7"
maxDay = 31
Case "8"
maxDay = 31
Case "9"
maxDay = 30
Case "10"
maxDay = 31
Case "11"
maxDay = 30
Case "12"
maxDay = 31
End Select

MaxDayOfMonth = maxDay-day(workdate)'这里计算当天距离月底的天数
End Function
for i=0 to MaxDayOfMonth(date())
rs.addnew
rs("ccdate")=DateAdd("d",i,date)
rs.update
next

  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zl_c 的回复:]
用存储过程最好,不用逐条插入.
[/Quote]

汗!!ACCESS哪来的存储过程?
CathySun118 2008-04-13
  • 打赏
  • 举报
回复
写个循环插入即可啊
zl_c 2008-04-13
  • 打赏
  • 举报
回复
用存储过程最好,不用逐条插入.
  • 打赏
  • 举报
回复
取得当前距离月底的天数
Function MaxDayOfMonth(workdate)
Select Case month(workdate)
Case "1"
maxDay = 31
Case "2"
If (work_year Mod 100 <> 0 and work_year Mod 4 = 0) or (work_year Mod 400 = 0) then
maxDay = 29
Else
maxDay = 28
End If
Case "3"
maxDay = 31
Case "4"
maxDay = 30
Case "5"
maxDay = 31
Case "6"
maxDay = 30
Case "7"
maxDay = 31
Case "8"
maxDay = 31
Case "9"
maxDay = 30
Case "10"
maxDay = 31
Case "11"
maxDay = 30
Case "12"
maxDay = 31
End Select

MaxDayOfMonth = maxDay-day(workdate)
End Function

MaxDayOfMonth(date())
jnwentao 2008-04-13
  • 打赏
  • 举报
回复
DateAdd 函数
返回已添加指定时间间隔的日期。
DateAdd(interval, number, date)
参数
interval
必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number
必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date
必选项。Variant 或要添加 interval 的表示日期的文字。

设置 描述
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
n 分钟
s 秒


zty0527 2008-04-13
  • 打赏
  • 举报
回复
距离这个天数怎么算出来,刚接触不是太清楚
jnwentao 2008-04-13
  • 打赏
  • 举报
回复
写成这样也可以
<%
i从0开始则包含当天,如果从1开始则从明天开始
for i=1 to datediff("d",date,cdate(Year(date) &"-"& Month(date)+1))-1
response.write DateAdd("d",i,date)
next
%>
jnwentao 2008-04-13
  • 打赏
  • 举报
回复
<%
x = datediff("d",date,cdate(Year(date) &"-"& Month(date)+1))
for i=1 to x -1
response.write DateAdd("d",i,date)
next
%>
  • 打赏
  • 举报
回复

for i=0 to 30
rs("ccdate")=DateAdd("d",i,date)
next
把30改成当前日期距离月底的天数就可以了

28,409

社区成员

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

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