Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371423
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 11:44
个人简介

文章不在长,坚持不懈记录下努力前行的脚步

文章分类

全部博文(166)

文章存档

2017年(19)

2016年(59)

2015年(88)

我的朋友

分类: Mysql/postgreSQL

2015-05-25 17:26:16

 今天写了一存储过程,执行过程后,查看目标表数据,有一字段居然显示乱码,经过修改,数据显示正常
存储过程代码如下:

点击(此处)折叠或打开

  1. DELIMITER $$

  2. DROP PROCEDURE IF EXISTS `p_ap_heart_down_warning`$$

  3. CREATE PROCEDURE `p_ap_heart_down_warning`()
  4. BEGIN
  5. TRUNCATE TABLE ap_heart_down_data_stat;
  6. INSERT INTO ap_heart_down_data_stat
  7. SELECT
  8.   '心跳下线',
  9.   ap_id,
  10.   systime,
  11.   SYSDATE()
  12. FROM
  13.   report_ap_heart
  14. WHERE systime < SUBDATE(SYSDATE(), INTERVAL 10 MINUTE)
  15.   AND systime >= SUBDATE(SYSDATE(), INTERVAL 3 HOUR)
  16.   AND ymd = CURDATE() ;
  17.   
  18. IF HOUR(CURTIME())<3 THEN
  19. INSERT INTO ap_heart_down_data_stat
  20. SELECT
  21.   '心跳下线',
  22.   ap_id,
  23.   systime,
  24.   SYSDATE()
  25. FROM
  26.   report_ap_heart
  27. WHERE systime < SUBDATE(SYSDATE(), INTERVAL 10 MINUTE)
  28.   AND systime >= SUBDATE(SYSDATE(), INTERVAL 3 HOUR)
  29.   AND ymd = SUBDATE(CURDATE(),1)
  30.   AND ap_id NOT IN (SELECT ap_id FROM ap_heart_down_data_stat);
  31. END IF;
  32. END$$

  33. DELIMITER ;
目标表建表语句如下:
SHOW CREATE TABLE `ap_heart_down_data_stat`

点击(此处)折叠或打开

  1. CREATE TABLE `ap_heart_down_data_stat` (
  2.   `warn_type` VARCHAR(20) DEFAULT NULL COMMENT '告警类型',
  3.   `ap_id` VARCHAR(12) DEFAULT NULL COMMENT '网关MAC地址',
  4.   `failover_time` DATETIME DEFAULT NULL COMMENT '设备故障时间',
  5.   `warn_time` DATETIME DEFAULT NULL COMMENT '报警时间'
  6. ) ENGINE=INNODB DEFAULT CHARSET=latin1 COMMENT='心跳故障统计表'
执行过程:

点击(此处)折叠或打开

  1. CALL p_ap_heart_down_warning
查看表数据
SELECT * FROM `ap_heart_down_data_stat`;
-----------------------------------------------------------------------------------------
"warn_type" "ap_id" "failover_time" "warn_time"
"????" "28224600040E" "2015-05-08 12:59:26" "2015-05-08 15:13:14"
"????" "2822460006EA" "2015-05-08 13:59:47" "2015-05-08 15:13:14"
"????" "28224600092C" "2015-05-08 12:13:23" "2015-05-08 15:13:14"
"????" "282246000E3C" "2015-05-08 14:05:53" "2015-05-08 15:13:14"
"????" "282246000E62" "2015-05-08 14:31:47" "2015-05-08 15:13:14"
"????" "282246000ED2" "2015-05-08 13:46:05" "2015-05-08 15:13:14"
"????" "282246000F5A" "2015-05-08 12:28:38" "2015-05-08 15:13:14"
"????" "282246000FC8" "2015-05-08 14:19:20" "2015-05-08 15:13:14"
"????" "282246001194" "2015-05-08 13:23:50" "2015-05-08 15:13:14"

1.客户端界面修改表字符集将latin1改为utf8后,查询结果还是同上  -- 宣告实验失败
2.重新执行过程将原来的数据truncate掉后重新插入,查询结果还是同上  -- 宣告实验失败
3.drop table ap_heart_down_data_stat;
建表指定字符集为utf8

点击(此处)折叠或打开

  1. CREATE TABLE `ap_heart_down_data_stat` (
  2.   `warn_type` VARCHAR(20) DEFAULT NULL COMMENT '告警类型',
  3.   `ap_id` VARCHAR(12) DEFAULT NULL COMMENT '网关MAC地址',
  4.   `failover_time` DATETIME DEFAULT NULL COMMENT '设备故障时间',
  5.   `warn_time` DATETIME DEFAULT NULL COMMENT '报警时间'
  6. ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='心跳故障统计表'
重新执行过程后查看表数据
select * from ap_heart_down_data_stat;
------------------------------------------------------------------------------------------
"warn_type" "ap_id" "failover_time" "warn_time"
"心跳下线" "28224600040E" "2015-05-08 12:59:26" "2015-05-08 15:13:14"
"心跳下线" "2822460006EA" "2015-05-08 13:59:47" "2015-05-08 15:13:14"
"心跳下线" "28224600092C" "2015-05-08 12:13:23" "2015-05-08 15:13:14"
"心跳下线" "282246000E3C" "2015-05-08 14:05:53" "2015-05-08 15:13:14"
"心跳下线" "282246000E62" "2015-05-08 14:31:47" "2015-05-08 15:13:14"
"心跳下线" "282246000ED2" "2015-05-08 13:46:05" "2015-05-08 15:13:14"
"心跳下线" "282246000F5A" "2015-05-08 12:28:38" "2015-05-08 15:13:14"
"心跳下线" "282246000FC8" "2015-05-08 14:19:20" "2015-05-08 15:13:14"
"心跳下线" "282246001194" "2015-05-08 13:23:50" "2015-05-08 15:13:14"

warn_type列数据显示正常


阅读(2022) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:not in造成的误统计

给主人留下些什么吧!~~