网站制作学习网PHP→正文:mysql日期判断
字体:

mysql日期判断

PHP 2010/9/16 17:43:41  点击:不统计

%77w%77%2Ef%6F%72p%73%70%2Ec%6E

php网站中经常配合mysql数据库,数据库中的经常用到时间的判断,在php函数中的date("Y-m-d h:i:s")来获取时间并存放到mysql数据库中.但是实际操作中mysql日期选择并不是那么容易,判断起来比较麻烦.
比如在数据库中查找等于某一天的数据,我曾经写的一篇文章:http://www.forasp.cn/html/1957.html 等于某一天.很麻烦的.
后来查看其他人写的代码,可以用unix时间来代替时间的查询.也就是说时间存在mysql数据库中是以unix时间的.

首先说一下mysql数据库中时间格式不是unix时间的转换为unix时间.
举例:首先确定mysql时间格式是:2010-09-16 ...的形式.前面的文章已经说明了php取时间有点不同.不知道为什么.
(1)在当前时间之前的数据的sql
$unixtime = date("U");
$foraspcnsql = "select mysqltime from table where UNIX_TIMESTAMP(mysqltime)<".$unixtime;
(2)在某个年月日之前的数据
$bgtime1 = mktime(0,0,0,$month,$day,$year);
$foraspcnsql = "select mysqltime from table where UNIX_TIMESTAMP(mysqltime)<".$bgtime1;
注意:UNIX_TIMESTAMP就是mysql数据库中时间的转换

mysql中直接是unix时间时
(1)当mysql数据库直接是unix时间时.则直接用时间来判断不用转换.
$unixtime = $date("U");
$sql = "select mysqltime from table where mysqltime<".$unixtime;
(2)当大于某天时则将时间转换.
$bgtime1 = mktime(0,0,0,$month,$day,$year);
$foraspcnsql = "select mysqltime from table where mysqltime<".$bgtime1;

除了以上两种情况中还有等于某一天,和在两个日期之间的.
(1)其实这两个是一样的,不同点就是前后时间,当等于某天则开始为该天的凌晨0点,则结束为该时间加上86400即可.也就是24小时
(2)两个日期之间则将日期转换即可.
$wwwtime = mktime(0,0,0,$month,$day,$year);//开始日期
$forasptime = mktime(0,0,0,$month,$day,$year)+86400;//上面那一天结束日期
$cntime = mktime(0,0,0,$month,$day2,$year);//结束日期2
$sql = "select mysqltime from table where mysqltime between ".$wwwtime." and ".$forasptime($cntime);即可.

这样判断mysql日期便简单了些.


http://www.forasp.cn/

·上一篇:PHP获取表单textarea数据换行 >>    ·下一篇:php日期转换 >>
推荐文章
最新文章