首 页 网站运营 网络编程 网页制作 图象媒体 数据库 建站资源 网管专区 下载专区 最新资讯
IT学堂|红色黑客联盟
设为首页
加入收藏
联系站长
您所在的位置:首页>数据库>Mysql>文章内容
SQL技巧:创建用来按小时报告的查询
来源: 作者: 发布时间:2007-04-13

要创建一个可以每个小时报告的查询,首先要创建一个表格。该表格一列记录日期,而没有时间信息;另一列记录钟点。下面的表格有一列记录了不同的处理类型。例如,我们可以按小时找出处理类型的总数。 

CREATE TABLE test
(StartTime DATETIME NOT NULL
DEFAULT CURRENT_TIMESTAMP,
StartDate DATETIME NOT NULL
DEFAULT CONVERT(DATETIME, CONVERT(CHAR(10),CURRENT_TIMESTAMP, 110)),
StartHour INT NOT NULL
DEFAULT DATEPART(hh,CURRENT_TIMESTAMP),
TranType INT NOT NULL
CONSTRAINT ck_TranType CHECK ( TranType IN

1, -- insert
2, -- update
3, -- delete
)
DEFAULT 1
)
GO 
接下来,插入test的数据来模拟一个可能的样本。

INSERT test (StartTime, TranType) VALUES (CURRENT_TIMESTAMP, 3)
INSERT test (StartTime, TranType) VALUES (CURRENT_TIMESTAMP, 2)


INSERT test (StartTime, TranType) VALUES (CURRENT_TIMESTAMP, 3)
GO

DECLARE @hr int
SET @hr = DATEPART(hh, DATEADD(hh,-1,CURRENT_TIMESTAMP) )

INSERT test (StartTime, TranType, StartHour) _
  VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 3, @hr)
INSERT test (StartTime, TranType, StartHour) _
  VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 1, @hr)
INSERT test (StartTime, TranType, StartHour) _
  VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 2, @hr)
GO 

然后用一个查询来找出按日和小时的处理总数。

SELECT StartDate tran_day,
StartHour tran_hour
, CASE trantype WHEN 1 THEN 'insert'
WHEN 2 THEN 'update'
WHEN 3 THEN 'delete'
ELSE 'unknown'
END trantype,
COUNT(*) tran_total
FROM
Test
GROUP BY
StartDate,
StartHour
,trantype
ORDER BY StartDate, StartHour
COMPUTE SUM(COUNT(*)) BY StartDate, StartHour
GO
 
去掉test可以清空test表格。

DROP TABLE test
GO 



[推荐] [返回顶部] [打印本页] [关闭窗口]
热点文章
·用批处理对MySQL进行数据操作
·PHP中操作MySQL的一些要注意的问题
·实例讲解:.NET如何访问MySQL数据库
·让MySQL与ASP.NET配合更强大
·数据备份中可能出错的情况及解决办法
·SQL Server连接失败错误分析与排除(1)
·SQL Server连接失败错误分析与排除(2)
·扩展微软 SQL Server 的空间功能
·了解MYSQL数据库调度与锁定的问题
·实例讲解MySQL数据库的查询优化技术
相关文章
·使用MySQL内建复制功能来最佳化可用性
·SQL语句的自动优化
·MYSQL到ORACLE程序迁移的注意事项
·MySQL数据库格式轻松转
·关于SQL SERVER建立索引需要注意的问
·MySQL以速度为目标
·如何将Access和Excel导入到Mysql中之
·如何将Access和Excel导入到Mysql中之
·如何将Access和Excel导入到Mysql中之
·如何使Microsoft SQL Server的日志文
文章检索
Google
相关文章
·使用MySQL内建复制功能
·SQL语句的自动优化
·MYSQL到ORACLE程序迁移
·MySQL数据库格式轻松转
·关于SQL SERVER建立索引
·MySQL以速度为目标
·如何将Access和Excel导
·如何将Access和Excel导
·如何将Access和Excel导
·如何使Microsoft SQL Se
·金额阿拉伯数字转换为中
·如何随机选取n条记录或
·一个有关DISTINCT的问题
·SQL--JOIN之完全用法
·MySQL修改密码方法总结