当前位置:首页 > 旅游指南

新生儿喂奶时间间隔 SQL计算宝宝吃奶的时间间隔(二)

简介:之前在“数据与云”微信官方账号发表了一篇文章《如何用SQL(分析功能的使用)计算婴儿哺乳的时间间隔》。本文是续集,如何提高程序的可用性。

因为工作忙,经常不能及时帮老婆孩子做好记录,让不了解数据库的老婆孩子用手机熟练操作。我继续做了一些修正和包装:

1.下载一个终端终端软件termius到老婆手机上,只需打开app就可以连接到环境;

2.进一步和老婆孩子沟通需求,根据她可以接受的使用习惯修改包装程序。原则是尽量简化操作。

我们先来看看改进后的最终使用效果:

-1.打开手机上的termius软件,点击进入终端,输入h即可看到所有命令的说明:

[Oracle @ jystdrac 1 ~]$ h * *婴儿喂养时间命令:*用法:v -查看今天的结果. & lt' mmdd'>。-查看一天的结果。i -使用当前时间插入一行。& ltmmdd hh24:mi ' >-使用输入时间插入一行。id>。-按id.u & lt删除错误行。标签>。& ltid>。-按标识更新错误行-帮助

-2.输入v查看今天的喂食时间和间隔:

[oracle@jystdrac1 ~]$ vView今日结果:

ID FEED _ TIME L LAG(min)LAG(h)---53 12-15 01:00N 140 2.3354 12-15 04:08N 188 3.1355 12-15 07:35N 207 3.4556 12-15 10:40N 185 3.0869 12-15 13:16N 156 2.670 12-15 14:32

选择了8行。

-3.输入I,在当前系统时间直接插入一条数据,并显示插入结果:

[oracle@jystdrac1~]$ iInsert a row using current time:1 row created.Commit complete.View Today's Result: ID FEED_TIME L LAG(min) LAG(h)---------- ----------- - ---------- ---------- 53 12-15 01:00 N 140 2.33 54 12-15 04:08 N 188 3.13 55 12-15 07:35 N 207 3.45 56 12-15 10:40 N 185 3.08 69 12-15 13:16 N 156 2.6 70 12-15 14:32 N 76 1.27 82 12-15 17:14 N 163 2.71 83 12-15 19:15 N 121 2.01 94 12-15 23:02 N 227 3.789 rows selected.

-4.输入d

[oracle@jystdrac1 ~]$ d 94Delete a mistake row by id:Enter value for id: old 1: deletefromt_baby whereid= &idnew 1: deletefromt_baby whereid= &idnew 1: deletefromt_baby whereid= 941rowdeleted.Commit complete.View Today 's Result: ID FEED_TIME L LAG(min) LAG(h)---------- ----------- - ---------- ---------- 53 12-15 01:00 N 140 2.33 54 12-15 04:08 N 188 3.13 55 12-15 07:35 N 207 3.45 56 12-15 10:40 N 185 3.08 69 12-15 13:16 N 156 2.6 70 12-15 14:32 N 76 1.27 82 12-15 17:14 N 163 2.71 83 12-15 19:15 N 121 2.018 rows selected.

-5.输入u

[oracle@jystdrac1 ~]$ u l 55Update a mistake row by id:Enter value for label: Enter value for id: old 1: updatet_baby setlabel = upper( '&label') whereid= &idnew 1: updatet_baby setlabel = upper( 'l') whereid= 551rowupdated.Commit complete.View Today 's Result: ID FEED_TIME L LAG(min) LAG(h)---------- ----------- - ---------- ---------- 53 12-15 01:00 N 140 2.33 54 12-15 04:08 N 188 3.13 56 12-15 10:40 N 392 6.53 69 12-15 13:16 N 156 2.6 70 12-15 14:32 N 76 1.27 82 12-15 17:14 N 163 2.71 83 12-15 19:15 N 121 2.017 rows selected.

-6.输入u

[oracle@jystdrac1 ~]$ u n 55Update a mistake row by id:Enter value for label: Enter value for id: old 1: update t_baby set label = upper('&label') where id = &idnew 1: update t_baby set label = upper('n') where id = 551 row updated.Commit complete.View Today's Result: ID FEED_TIME L LAG(min) LAG(h)---------- ----------- - ---------- ---------- 53 12-15 01:00 N 140 2.33 54 12-15 04:08 N 188 3.13 55 12-15 07:35 N 207 3.45 56 12-15 10:40 N 185 3.08 69 12-15 13:16 N 156 2.6 70 12-15 14:32 N 76 1.27 82 12-15 17:14 N 163 2.71 83 12-15 19:15 N 121 2.018 rows selected.

-7.输入ii

[oracle@jystdrac1 ~]$ ii '1215 23:00'Insert a row using input time(mmdd mi:ss) eg: 1215 10:00Enter value for feed_time: old 1: insert into t_baby(id,feed_time) values(s1.nextval,to_date('&feed_time','mmdd hh24:mi'))new 1: insert into t_baby(id,feed_time) values(s1.nextval,to_date('1215 23:00','mmdd hh24:mi'))1 row created.Commit complete.View Today's Result: ID FEED_TIME L LAG(min) LAG(h)---------- ----------- - ---------- ---------- 53 12-15 01:00 N 140 2.33 54 12-15 04:08 N 188 3.13 55 12-15 07:35 N 207 3.45 56 12-15 10:40 N 185 3.08 69 12-15 13:16 N 156 2.6 70 12-15 14:32 N 76 1.27 82 12-15 17:14 N 163 2.71 83 12-15 19:15 N 121 2.01 95 12-15 23:00 N 225 3.749 rows selected.

-8.删除id=95的测试记录

[Oracle @ jystdrac 1 ~]$ d 95按id删除错误行:输入id的值:旧1:从t_baby中删除,其中id = & ampidnew 1:从t_baby中删除,其中id = 95

删除了1行。

提交完成。

查看今天的结果:

ID FEED _ TIME L LAG(min)LAG(h)---53 12-15 01:00N 140 2.3354 12-15 04:08N 188 3.1355 12-15 07:35N 207 3.4556 12-15 10:40N 185 3.0869 12-15 13:16N 156 2.670 12-15 14:32

选择了8行。

-9.使用vv 'mmdd '显示指定日期的喂食间隔:

[Oracle @ jystdrac 1 ~]$ vv 1214查看今天的结果:输入feed_time的值:输入feed_time的值:旧2: from(选择t.*,lag(feed_time) over(按id排序)l_time from t_baby t其中标签& lt>。l '),其中feed_time >为。= to _ date(' & amp;feed_time ',' mmdd ')和feed_time <。截止日期(& ampfeed_time ',' mmdd') + 1new 2: from (select t.*,lag(feed _ time)over(order by id)l _ time from t _ baby t其中label & lt>。l '),其中feed_time >为。= to_date('1214 ',' mmdd ')和feed _ time & ltto_date('1214 ',' mmdd') + 1

ID FEED _ TIME L LAG(min)LAG(h)---41 12-14 01:55N 265 4.4242 12-14 04:58N 183 3.0543 12-14 08:25N 207 3.4544 12-14 11:23N 178 2.9745 12-14 12:23N 60 146 12-14 15:00N 150

选择了9行。

经过一番论证,我老婆的反馈非常满意。其实她用V和I最多,很方便。偶尔使用其他命令。其实只要记住H可以得到帮助。以下将记录校正和包装过程:

1.环境变量配置别名2.系统shell脚本3.底层SQL文本

1.环境变量配置别名

为了简化操作,我为环境变量设置了一些别名。

[oracle@jystdrac1 ~]$ cat ~/.bash_profile # 这里省略原有环境变量内容,下面为在源文件基础上追加的内容:# Alias for baby's feed_time:alias h=/home/oracle/baby_readme.shalias v=/home/oracle/baby_view.shalias i=/home/oracle/baby_insert.shalias d=/home/oracle/baby_delete.shalias u=/home/oracle/baby_update.shalias ii=/home/oracle/baby_insert_diy.shalias vv=/home/oracle/baby_view_diy.sh

2.系统外壳脚本

##baby_readme.shvi baby_readme.sh#!/bin/bash# :baby_readme.sh# version:1.01#-------------------------------------------------------------echo "**Command for Baby's feed_time:**"echo "Usage:"echo " v - View Today's Result."echo " vv <'mmdd'> - View one day's Result."echo " i - Insert a row using current time."echo " ii <'mmdd hh24:mi'> - Insert a row using input time."echo " d <id> - Delete a mistake row by id."echo " u <label> <id> - Update a mistake row by id."echo " h - Help"#-------------------------------------------------------------##baby_view.shvi baby_view.sh#!/bin/bash# :baby_view.sh# version:1.01#-------------------------------------------------------------sqlplus -S test/test <<EOFPROMPT View Today's Result:@v3EOF#-------------------------------------------------------------##baby_insert.shvi baby_insert.sh#!/bin/bash# :baby_insert.sh# version:1.01#-------------------------------------------------------------sqlplus -S test/test <<EOFPROMPT Insert a row using current time:@i1PROMPT View Today's Result:@v3EOF#-------------------------------------------------------------##baby_delete.shvi baby_delete.sh#!/bin/bash# :baby_delete.sh# version:1.01#-------------------------------------------------------------sqlplus -S test/test <<EOFPROMPT Delete a mistake row by id:@d1$1commit;PROMPT View Today's Result:@v3EOF#-------------------------------------------------------------##baby_insert_diy.shvi baby_insert_diy.sh#!/bin/bash# :baby_insert_diy.sh# version:1.01#-------------------------------------------------------------sqlplus -S test/test <<EOFPROMPT Insert a row using input time(mmdd mi:ss) eg: 1215 10:00@i2$1commit;PROMPT View Today's Result:@v3EOF#-------------------------------------------------------------##baby_update.shvi baby_update.sh#!/bin/bash# :baby_update.sh# version:1.01#-------------------------------------------------------------sqlplus -S test/test <<EOFPROMPT Update a mistake row by id:@u1$1$2commit;PROMPT View Today's Result:@v3EOF#-------------------------------------------------------------##baby_view_diy.shvi baby_view_diy.sh#!/bin/bash# :baby_view.sh# version:1.01#-------------------------------------------------------------sqlplus -S test/test <<EOFPROMPT View one day's Result:@v4$1$1EOF#-------------------------------------------------------------

3.底层的SQL文本

-呼应“v -查看今天的结果。”[Oracle @ jyst drac 1 ~]$ cat v3 . SqL selected,to_char(feed_time,' mm-dd hh24:mi') "FEED_TIME ",标签,round((feed_time - l_time) * 24 * 60)" LAG(min)",round((FEED _ TIME-l _ TIME)* 24,2) "LAG(h)"FROM(SELECTt)。*,LAG(feed _ time)OVER(ORDER BY id)l _ time from _ baby tWHERElabel & lt;>。l '),其中feed_time >为。= trunc(sysdate)/

- echo " vv <。' mmdd'>。-查看一天的结果。”[Oracle @ jyst DRA 1 ~]$ cat v4 . SQL SELECTid,to_char(feed_time,' mm-dd hh24:mi') "FEED_TIME ",标签,round((feed_time - l_time) * 24 * 60)" LAG(min)",round((FEED _ TIME-l _ TIME)* 24,2) "LAG(h)"FROM(SELECTt)。*,LAG(feed _ time)OVER(ORDER BY id)l _ time from _ baby tWHERElabel & lt;>。l '),其中feed_time >为。= To _ DATE(' & amp;feed_time ',' mmdd ')和feed _ time & lt终止日期(& ampfeed_time ',' mmdd') + 1/

-回显“i -使用当前时间插入一行。”[Oracle @ jystdrac 1 ~]$ cat i1 . SQL insert into t _ baby(id,feed_time)值(s1.nextval,sysdate)/commit/

-回显“ii -使用输入时间插入一行。”[Oracle @ jystdrac 1 ~]$ cat I2 . SQL insert into t _ baby(id,feed_time)值(s1.nextval,to _ date(& amp;feed_time ',' mmdd hh24:mi ')/

-回显“d -按id删除错误行”[Oracle @ jyst drac 1 ~]$ cat D1 . SQL delete from t _ baby其中id = & ampid/

-回显“u -按标识更新错误行”[Oracle @ jyst drac 1 ~]$ cat u1 . SQL update t _ baby set label = upper(& amp;标签'),其中id = & ampid/

独立的SQL文本也方便了后续需求变化时的快速修改。

莫天伦原文链接:https://www.modb.pro/db/22267(复制到浏览器打开或点击左下角“阅读原文”)

你的爱会被看到

1.《新生儿喂奶时间间隔 SQL计算宝宝吃奶的时间间隔(二)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《新生儿喂奶时间间隔 SQL计算宝宝吃奶的时间间隔(二)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1643600.html

上一篇

最便宜的电脑 世界上最便宜的笔记本电脑

下一篇

城管工资多少钱一个月 上海城管执法人员工资待遇如何?城管人员身份编织是怎么样的

余额宝收益到账时间 余额宝春节期间转入/转出收益到账公告

余额宝收益到账时间 余额宝春节期间转入/转出收益到账公告

【中关村在线软件信息】1月26日消息:余额宝春节期间调整转账收入和到达时间是惯例,那么今年呢?日前,余额宝正式公布了春节期间转入/转出的收入及到达时间。  余额宝 公告显示1月25日15:00前过户,计算收益时间为1月26日,查看收益时间为1月27日; 1月25日15:00-1月26日15...

北京明日之星 2018中国高科技高成长50强暨明日之星评选结果揭晓

2018年11月20日,中国高新技术与高增长50强(“中国50强”)颁奖仪式20日在北京举行。活动还揭晓了中国后起之秀榜单,众多排名靠前的企业整体收入增速创历史新高。 此次活动由德勤中国主办,北京市朝阳区人民政府作为战略合作伙伴。朝阳区委书记王浩出席活动并讲话。文学,朝阳区委副书记,代理区...

2周岁宝宝最佳作息时间 宝宝2岁前,如何让孩子睡得好?这篇0-2岁“哄睡指南”请收好

  • 2周岁宝宝最佳作息时间 宝宝2岁前,如何让孩子睡得好?这篇0-2岁“哄睡指南”请收好
  • 2周岁宝宝最佳作息时间 宝宝2岁前,如何让孩子睡得好?这篇0-2岁“哄睡指南”请收好
  • 2周岁宝宝最佳作息时间 宝宝2岁前,如何让孩子睡得好?这篇0-2岁“哄睡指南”请收好

韩国美女健身教练 韩国美女健身教练,7年时间见成果,4个动作练出人人称羡的柯基臀

  • 韩国美女健身教练 韩国美女健身教练,7年时间见成果,4个动作练出人人称羡的柯基臀
  • 韩国美女健身教练 韩国美女健身教练,7年时间见成果,4个动作练出人人称羡的柯基臀
  • 韩国美女健身教练 韩国美女健身教练,7年时间见成果,4个动作练出人人称羡的柯基臀

久部六郎 Unnatural|有时间绝望 还不如去吃美食然后睡个觉

unnatural Unnatural|有时间绝望 还不如去吃美食然后睡个觉

地球到冥王星的距离 地球距冥王星有多远?宇宙飞船到达冥王星要多长时间?

  • 地球到冥王星的距离 地球距冥王星有多远?宇宙飞船到达冥王星要多长时间?
  • 地球到冥王星的距离 地球距冥王星有多远?宇宙飞船到达冥王星要多长时间?
  • 地球到冥王星的距离 地球距冥王星有多远?宇宙飞船到达冥王星要多长时间?
浙江一副局长在工作群中与女员工互称宝贝 处理结果来了!

浙江一副局长在工作群中与女员工互称宝贝 处理结果来了!

浙江一副局长在工作群中与女员工互称宝贝,处理结果来了!...