创建测试表:
10年积累的成都做网站、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有鄂托克免费网站建设让你可以放心的选择与我们合作。
create table USER
(id int,
createtime date)
insert into user values (1,'2019-2-18');
insert into user values (2,'2019-2-19');
insert into user values (3,'2019-2-20');
insert into user values (4,'2019-2-21');
执行:
select a.day,sum(case when a.day=b.createtime then 1 else 0 end) cnt
from
(select DATE(ADDDATE(subdate(curdate(),date_format(curdate(),'%w')-1), INTERVAL help_topic_id DAY)) day from mysql.help_topic where help_topic_id 7) a
left join user b on a.day=b.createtime
group by a.day
结果:
版本一:
根据查找到的主机名,输入日期后,输出一日内最大进出口流量
#!/bin/bash
#
###获取每日流量最大值的脚本,脚本从zabbix数据库的history_uint表中取
###数据,根据hostname.txt文件中的主机名。
###wuhf###
z_user="XXX"
z_passwd="XXX"
Cur_Dir=$(pwd)
function test_file {
echo "-------------------------开始查找主机名--------------------------"
if [ -e $Cur_Dir/hostname.txt ]; then
echo $Cur_Dir/hostname.txt
else
touch $Cur_Dir/hostname.txt
fi
for host_ip in $(cat $Cur_Dir/hostip.txt); do
if /usr/local/zabbix/bin/zabbix_get -s $host_ip -k system.hostname /dev/null; then
z_hostname=$(/usr/local/zabbix/bin/zabbix_get -s $host_ip -k system.hostname)
echo -e "\033[32mIP:$host_ip -------- 主机名:$z_hostname\033[0m"
echo "$z_hostname" $Cur_Dir/hostname.txt
else
echo -e "\033[31mIP:$host_ip -------- 主机名:Error\033[0m"
echo -e "\033[31m主机名没有被找到,可能是网络不可达或者zabbix_agentd端没有启动\033[0m"
fi
done
}
function input_date {
read -p "请输入开始日期(如2015-01-01):" E
until date -d"$E" /dev/null; do
echo -e "\033[31m你输入的日期格式错误,请从新输入!\033[0m"
read -p "请输入开始日期:" E
done
if date -d "$E" /dev/null;then
from_time=$(date -d"$E" +%s)
fi
read -p "请输入结束日期:" D
until date -d"$D" /dev/null; do
echo -e "\033[31m你输入的日期格式错误,请从新输入!\033[0m"
read -p "请输入结束日期(如2015-01-01):" D
done
if date -d "$D" /dev/null;then
end_time=$(date -d"$D" +%s)
fi
}
function main() {
mysql -u$z_user -h127.0.0.1 -p$z_passwd -Dzabbix -e "select host,hostid from hosts where host=\"$host_name\";" | grep "$host_name" /dev/null
if [ $? -eq 0 ]; then
Max_In=$(mysql -uz_user -h127.0.0.1 -pz_passwd -Dzabbix -e "select from_unixtime(clock) as DateTime,max(round(value/1024/1024,2)) as In_Value from history_uint
where itemid = (select itemid from items
where hostid = (select hostid from hosts
where host=\"$host_name\")
and key_ like \"net.if.in%\" limit 1)
and clock = $from_time and clock = $end_time" |tail -1 |awk '{print $3}')
Max_Out=$(mysql -uz_user -h127.0.0.1 -pz_passwd -Dzabbix -e "select from_unixtime(clock) as DateTime,max(round(value/1024/1024,2)) as In_Value from history_uint
where itemid = (select itemid from items
where hostid = (select hostid from hosts
where host=\"$host_name\")
and key_ like \"net.if.out%\" limit 1)
and clock = $from_time and clock = $end_time" |tail -1 |awk '{print $3}')
echo "| $host_name | 最大进口流量: $Max_In | 最大出口流量: $Max_Out | 日期范围:$E 至 $D |"
else
echo -e "\033[31m主机名 $host_name 在zabbix数据库中不存在,请修改主机名后重试!\033[0m"
fi
}
test_file
input_date
until [ $from_time -lt $end_time ]; do
echo -e "\033[31m开始日期应该小于结束日期,请从新输入!\033[0m"
input_date
done
for host_name in $(cat $Cur_Dir/hostname.txt); do
echo "------------------------------------------------------------------------------------------------------"
main
done
select count(1) from "查询的表" where "时间" = "当天零点" and "时间" "当前时间";
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。
MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
SELECT a.username AS username, SUM(a.flowkB) AS userflow, b.type AS type FROM flow AS a, usertype AS b WHERE a.username=b.username GROUP BY a.username ORDER BY userflow DESC
很简单那
看返回的数据量。一个字符大概算两字节。再乘以你传输的所有字数。就是大概的流量。
再准确点,我们一般会用utf-8编码,UTF-8是变长编码,ASCCII区一个字节编码,其他的从两字节到4字节不等,如汉字一般是4个字节编码。多请求几次,求平均值,就能计算出比较准确的数据。
再把TCP/IP通讯的报文额外长度计算在内,会更准确。
select date_format(now(),'%d%H');
比如当前时间是2016-8-29 17:30
得到的结果就是 '2917'
有上面的结果就可以判定了,如查询今天下午5点的数据:
select column from table_name where date_format(createDate,'%d%H') = '2917';
如果需要加上年月日时分秒也是一样
date_format(now(),'%Y-%m-%d %h:%i:%s');