求救:如何写这个查询语句。高分回报50分

snowhillxj 2005-12-05 10:10:24
在一个表中有一个时间类型的列,我现在指定一个日期,然后从表中查询在这个日期(不考虑年)的前后15天也就总共一个月的范围内的数据,特殊的是要每一年的这个时段,也就是将所有年份的这个时段的记录找出来,然后找出来的数据按日期的升序排列。谢谢各位,帮帮忙了,很急!!
...全文
257 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2005-12-06
  • 打赏
  • 举报
回复
sql="select * from table1 where datepart(dayofyear,yourdatefield) between " & datepart(dayofyear,givendate)-15 & " and "& datepart(dayofyear,givendate) +15 &" order by yourdatefield asc"
daisy8675 2005-12-06
  • 打赏
  • 举报
回复
先mark

northwolves 2005-12-06
  • 打赏
  • 举报
回复
try:

sql="select * from table1 where datepart(dayofyear,yourdatefield) between " & datepart(dayofyear,givendate)-15 & " and "& datepart(dayofyear,givendate) +15
snowhillxj 2005-12-06
  • 打赏
  • 举报
回复
太好了,解决了,非常感谢大家!!
seven2015 2005-12-06
  • 打赏
  • 举报
回复
vb 不是很懂,看了楼上也学到不少!
vbman2003 2005-12-06
  • 打赏
  • 举报
回复
哦,试试:
"select * From " & strTable & " Where Format([date], 'mm-dd') Between Format(DateDiff('y', 15,#" & date1.Value & "#), 'mm-dd') and format(dateadd('y',15,#" & date1.Value & "#),'mm-dd') order by [date]"
vbman2003 2005-12-06
  • 打赏
  • 举报
回复
你试试
Print Format(DateDiff('y', 15," & date1.Value & ")
看看是不是你要的日子
vbman2003 2005-12-06
  • 打赏
  • 举报
回复
你要查询什么?dateadd的参数中用y?
seven2015 2005-12-06
  • 打赏
  • 举报
回复
有什么差距?
你能不能说得清楚一点?
snowhillxj 2005-12-06
  • 打赏
  • 举报
回复
"select * From " & strTable & " Where Format([date], 'mm-dd') Between Format(DateDiff('y', 15," & date1.Value & "), 'mm-dd') and format(dateadd('y',15," & date1.Value & "),'mm-dd') order by [date]" 这是我的语句,比如我给了一个2005年7月15日,找出来的是从5月20号以后开始到6月20号以前,怎么会这样,帮我看看了,谢谢!
snowhillxj 2005-12-06
  • 打赏
  • 举报
回复
这样找出来的记录还有些问题,日期不是我想要的,还有一些差距,这是为什么呢?各位再帮我想想。谢谢!
vbman2003 2005-12-06
  • 打赏
  • 举报
回复
SQL数据库可以按上面的方法,Access如下试试:

select *
from tb
where format(dates,"mm-dd")
between format(datediff("d",15,#11/10/2004#),"mm-dd")
and format(dateadd("d",15,#11/10/2004#),"mm-dd")
order by dates

其中:tb是表名,dates是你日期字段名称
snowhillxj 2005-12-06
  • 打赏
  • 举报
回复
我试一试,谢谢各位了!
foreverstar2004 2005-12-06
  • 打赏
  • 举报
回复
sql="select * from 你的表 where datepart(dayofyear,日期字段) between " & datepart(dayofyear,日期字段)-15 & " and "& datepart(dayofyear,日期字段) +15 &" order by 日期字段 asc"
seven2015 2005-12-06
  • 打赏
  • 举报
回复
你Test 一下

SELECT *
FROM TABLE
WHERE SUBSTR(TO_CHAR(TIME+15,'YYYYMMDD'),5,4)>SUBSTR(TO_CHAR(TIME,'YYYYMMDD'),5,4)
AND SUBSTR(TO_CHAR(TIME-15,'YYYYMMDD'),5,4)<SUBSTR(TO_CHAR(TIME,'YYYYMMDD'),5,4)
ORDER BY TIME DESC;
seven2015 2005-12-06
  • 打赏
  • 举报
回复
SELECT *

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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