vlambda博客
学习文章列表

PHP-数据库系统日期时间的一些查询语句

总结一下吧。数据库使用的是Oracle.


背景:以前插入数据库数据时,都是在insert into语句中加入日期和时间两列,当时数据分析时都是以天为单位。后面发现想要分析特定时间段内的数据时,不方便。后来就更改了表格结构,引入触发器,当有数据插入时,自动记录数据插入的日期和时间。但是日期和时间组合在一起的字段,在分析时又面临了一个新的问题,PHP语句中需要把 Date的格式转换成Char类型,用到了一个to_char函数,下面以一个demo为例来说明。


数据库中表格内容如下:



表格说明:

触发器,有数据插入时,自动将数据库所在服务器时间插入到这一条记录当中。

create trigger TRI_SYSSHIJIAN before insert on SYSSHIJIAN for each row when (new.BASETIME is null)beginselect sysdate into :new.BASETIME from dual;end;


PHP查询语句

获取2021-6-19  11点和13点之间的表格中NEIRONG列的数据

效果如下:

PHP Select语句如下

SELECT NEIRONG from SYSSHIJIAN where BASETIME >= to_date('$start', 'YYYY.MM.DD HH24:MI:SS')AND BASETIME<= to_date('$end', 'YYYY.MM.DD HH24:MI:SS')

其中$start和$end数据来源于form表单提交的数据

<form method="post"action="phptime.php"target="history"> <table align="left"> <tr><td>开始时间</td><td><input type="text" value="" name="start_time" onclick="SelectDate(this,'yyyy-MM-dd hh:mm:ss')"></td> <td>结束时间</td><td><input type="text" value=""name="end_time"onclick="SelectDate(this,'yyyy-MM-dd hh:mm:ss')"></td> <td><input type="submit"value="提交"></td><th style="width: 20px"></th> </tr> </table></form>