sql calculate time difference

本文介绍了如何使用SQL的DATE函数和TO_NUMBER函数计算两个日期之间的天数差,通过示例展示了从'2018-5-31'到'2018-6-5'的具体操作过程。

select TO_NUMBER(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')- TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
AS 相差天数 from dual;


#请将以下代码死循环插入执行满10次后,循环打印printf里面的内容 #!/bin/bash #---Shell QPS Loop Execution,Oracle user to execute #--- eg.sh oracle_qps.sh #---'execute count': 统计 SQL 执行总次数,用于计算 QPS。 #---'user commits': 统计用户提交事务的总次数,用于计算 TPS。 # source profile if [[ -z /home/oracle/.bash_profile ]] then . /home/oracle/.bash_profile fi # functions: execute count get_execute_count() { sqlplus -S "/ as sysdba" <<EOF | grep -v '^$' SET HEADING OFF FEEDBACK OFF PAGESIZE 0 VERIFY OFF TRIMSPOOL ON SELECT VALUE FROM V\$SYSSTAT WHERE NAME = 'execute count'; EXIT; EOF } # functions: get_committed rollbacks get_committed_rollbacks() { sqlplus -S "/ as sysdba" <<EOF | grep -v '^$' SET HEADING OFF FEEDBACK OFF PAGESIZE 0 VERIFY OFF TRIMSPOOL ON SELECT VALUE FROM V\$SYSSTAT WHERE NAME = 'user commits'; EXIT; EOF } count=0 # Loop Bodya while true; do printf "+----------------------------------------------+\n" printf "%-20s %-10s %-5s\n" "| Time | " " OPS |" " TPS |" printf "+----------------------------------------------+\n" for i in count=$((count + 1)) do # 初始化起始时间和执行计数值 START_TIME=$(date +%s) START_EXECUTE_COUNT=$(get_execute_count) START_COMMITTED_ROLLBACKS=$(get_committed_rollbacks) sleep 1 # 获取结束时间和新的执行计数值 END_TIME=$(date +%s) END_EXECUTE_COUNT=$(get_execute_count) END_COMMITTED_ROLLBACKS=$(get_committed_rollbacks) # 计算 QPS 和 TPS EXECUTE_DIFF=$((END_EXECUTE_COUNT - START_EXECUTE_COUNT)) COMMIT_DIFF=$((END_COMMITTED_ROLLBACKS - START_COMMITTED_ROLLBACKS)) TIME_DIFF=$((END_TIME - START_TIME)) if [[ $TIME_DIFF -eq 0 ]]; then echo "Error: Time difference is zero, cannot calculate metrics." >&2 continue fi QPS=$(echo "scale=2; $EXECUTE_DIFF / $TIME_DIFF" | bc) TPS=$(echo "scale=2; $COMMIT_DIFF / $TIME_DIFF" | bc) # 输出结果 TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S") echo "[${TIMESTAMP}] ${QPS} ${TPS} " count=0 done done 优化以上代码
07-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值