|
作者: cgx [cgx] 论坛用户 | 登录 |
最近在写论坛,因公司设计的页面是仿动网的,在统计今天帖子总数,昨天帖子,和最高日帖子这边,卡住了,试了好几种都不行.不知哪位能指点下?数据库的帖子添加时间是用now()的,access数据库. |
地主 发表时间: 06-11-15 13:15 |
回复: NetFog [q70213526] 版主 | 登录 |
今日发贴:Select Count(*) From Topic Where 日期=今天 昨日发贴:Select Count(*) From Topic Where 日期=今天减一个 最高日贴:Select Top 1 Count(*) From Topic Group By 日期 |
B1层 发表时间: 06-11-15 21:09 |
回复: cgx [cgx] 论坛用户 | 登录 |
哈哈,我就是 Where 日期=今天 Where 日期=今天减一个 这几个不知道怎么弄.因为我的数据库发贴时间是now()的.要对比,肯定要变成只有年月份,没有后面这些时间的。 |
B2层 发表时间: 06-11-17 10:34 |
回复: NetFog [q70213526] 版主 | 登录 |
比较时只比较日期,不比较小时和分秒啊.不行则用between 没去做测试..呵呵.这东西不难的. |
B3层 发表时间: 06-11-17 13:04 |
回复: NetFog [q70213526] 版主 | 登录 |
不过有可能"最高日贴"会出问题.. 建议你在Topic表中新建一个字段OnlyDate.只保留日期,不要小时分秒. 这样就简单了. |
B4层 发表时间: 06-11-17 13:09 |
回复: cgx [cgx] 论坛用户 | 登录 |
[比较时只比较日期,不比较小时和分秒啊] 我就是要比较日期.可是不知道怎么来使now()只有日期.又不能用date(now). 用year(now)&"-"&month(now)……这样来取的日期来比较,也不行。 不过最后一种办法真是好办法。呵呵。谢谢。 |
B5层 发表时间: 06-11-17 13:36 |
回复: NetFog [q70213526] 版主 | 登录 |
楼主有心了.. 竟然写起论坛来了..一个好论坛程序是要花费很大精力的. |
B6层 发表时间: 06-11-17 17:06 |
回复: NetDemon [netdemon] ADMIN | 登录 |
保存在数据库中的时间最好不要用数据库提供的now() 而是用操作系统提供的time(),这个值是从1970年1月1号0点到现在的秒数 这样程序写起来简单很多 |
B7层 发表时间: 06-11-18 00:54 |
回复: cgx [cgx] 论坛用户 | 登录 |
没办法,原来公司用动网的,天天被别人用工具发垃圾帖子一大堆.又怕安全的。所以领导要求自己写一个了。功能简单哪!,漏洞就小了。也就发贴回贴,管理.其他什么收藏啦,银行啦之类的花哨功能都没有..我是asp菜鸟,这个简单的写了三星期呢。 那个统计最高日的,有另一种方法,,新建一个表,里面有日期和数量两个字段。每次统计当日的帖子总数,和新表的总数做比较,如果大于,就写入新表. 这个:最高日贴:Select Top 1 Count(*) From Topic Group By 日期 order by count(*) desc 可以统计出最高日发贴.可是不知道怎么显示发贴时间! [此贴被 破贝壳(cgx) 在 11月18日11时50分 编辑过] |
B8层 发表时间: 06-11-18 11:10 |
回复: NetFog [q70213526] 版主 | 登录 |
ASP中now()取的是WEB服务器时间。不是数据库时间。SQL SERVER 取系统时间用date() 新建一个表也是个可行的方案。查询效率会高点。不过每发一个贴,都必须更新一次你说的新表。呵呵,什么方案效率高你就用什么方案。。 |
B9层 发表时间: 06-11-18 19:52 |
回复: cgx [cgx] 论坛用户 | 登录 |
这个:最高日贴:Select Top 1 Count(*) From Topic Group By 日期 order by count(*) desc 可以统计出最高日发贴.可是不知道怎么显示发贴时间! [此贴被 破贝壳(cgx) 在 11月20日10时01分 编辑过] |
B10层 发表时间: 06-11-20 09:49 |
回复: NetFog [q70213526] 版主 | 登录 |
Select Top 1 Count(*) as MaxTopic,OnlyDate From Topic Group By OnlyDate 你后面的order by是多此一举..OnlyDate是只包含日期,不包含小时分秒的字段 调用时rs("MaxTopic")就是最高日发贴,OnlyDate就是最高日发贴发生的日期. |
B11层 发表时间: 06-11-20 18:01 |
回复: cgx [cgx] 论坛用户 | 登录 |
我用楼上这个方法显示的是最少发贴的数和时间. 应是: select top 1 count(*) as maxtopic,onlydate from toppic group by onlydate order by count(*) desc 这样才正确 |
B12层 发表时间: 06-11-21 16:23 |
回复: cgx [cgx] 论坛用户 | 登录 |
顺带再问一个: 我论坛基本做完了,才发现设计表时,出了一个大错。 因为为了导动网数据库方便,主题贴和回复贴在同一个表里.以layer字段来区分是主题还是回复的。 结果现在才发现,在帖子列表里,没办法把新回复的提到最上层. 因为是where layer=主题的.所以根本没办法根据回复的时间来排序. |
B13层 发表时间: 06-11-21 16:48 |
回复: NetFog [q70213526] 版主 | 登录 |
呵呵.我测试过了的.. 我得出的确实是最大值.不过我用的是SQL SERVER 2005. |
B14层 发表时间: 06-11-21 22:47 |
回复: cgx [cgx] 论坛用户 | 登录 |
呵呵,那可能是数据库问题.我的用access必须order by的. 另:帖子列表里,没办法把新回复的提到最上层.的问题已解决. 在帖子表里再加一个时间型的字段,发主题时,把同时把发贴时间写入这个字段,回复时,把回复时间更新主题的这个字段. |
B15层 发表时间: 06-11-22 10:03 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号