注册 登录
编程论坛 ASP技术论坛

ASp+access数据库里面的关于查找一个月的记录的问题

晨星弃笛 发布于 2011-05-11 11:24, 2133 次点击
其中部分代码如下。
set rs1=server.CreateObject("adodb.recordset")
sql="Select * FROM mymoney Where(datediff(month,日期时间,getdate())=0) order by 日期时间 Asc"
rs1.open sql,conn,1,3

如果上面去掉判断日期的Where(datediff(month,日期时间,getdate())=0),则可以正常运行。所以我在想会不会是条件错了?

PS:[日期时间]是表mymoney中储存日期和时间的字段。格式为now()函数获取储存的格式。
7 回复
#2
dzt00012011-05-11 12:41
datediff('m',日期时间,date())
#3
晨星弃笛2011-05-11 13:16
以下是引用dzt0001在2011-5-11 12:41:04的发言:

datediff('m',日期时间,date())




还是不行啊。

set rs1=server.CreateObject("adodb.recordset")
sql="Select * FROM mymoney Where(datediff('m',日期时间,date())=0)) order by 日期时间 Asc"

还是错误。
#4
dzt00012011-05-11 13:33
将日期时间这个字段名换成英文的字符

[ 本帖最后由 dzt0001 于 2011-5-11 13:39 编辑 ]
#5
liang1982072011-05-11 14:35
Where(datediff(month,日期时间,getdate())=0)变成Where datediff('m',日期时间,now())=1  等于0是什么目的没看懂,你存储的格式是now()获得,这里你怎么又用date(),那肯定不行咯。

[ 本帖最后由 liang198207 于 2011-5-11 14:36 编辑 ]
#6
晨星弃笛2011-05-11 16:58
以下是引用dzt0001在2011-5-11 13:33:56的发言:

将日期时间这个字段名换成英文的字符


也把[日期时间]改成了datetime。也按照5楼的意思改了,但却还是不行...
#7
晨星弃笛2011-05-11 17:00
以下是引用liang198207在2011-5-11 14:35:22的发言:

Where(datediff(month,日期时间,getdate())=0)变成Where datediff('m',日期时间,now())=1  等于0是什么目的没看懂,你存储的格式是now()获得,这里你怎么又用date(),那肯定不行咯。



我试过now、date等各种函数,还是老样子。
把[日期时间]字段改成英文字符datetime也还是不行。
等于0是判断是不是表里面的月份是不是本月份。

以上若去掉where后的条件约束,则还是可以正常读取。
#8
晨星弃笛2011-05-11 18:05
最后不知道怎么又行了。谢谢各位。
莫非是浏览器禁用了什么的缘故。


sql="Select * FROM mymoney Where (DATEDIFF('m',日期时间,now())=0) order by 日期时间 Asc"

最终改回了这样。
1