參考如下:
創(chuàng)新互聯(lián)公司專注于四方臺企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。四方臺網(wǎng)站建設(shè)公司,為四方臺等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
select?user1,sum(value)balance
from?UserValue表
where?time?between?"2015-01-01"?and?"2015-02-01"?+?INTERVAL?1?MONTH
group?by?user1
;
--或者
select?user1,sum(value)balance
from?UserValue表
where?DATE_FORMAT(time,"%Y-%m")?between?"2015-01"?and?"2015-02"
group?by?user1
;
--或者
select?user1,sum(value)balance
from?UserValue表
where?DATE_FORMAT(time,"%Y-%c")?between?"2015-1"?and?"2015-2"
group?by?user1
;
查一下服務(wù)器時(shí)間使用的時(shí)區(qū),通過phpinfo輸出,可以看到下圖,如果值不是PRC或者是asia/shanghai,是采用了其它時(shí)區(qū)的話,那么就得在php.ini里調(diào)整為北京時(shí)間,php程序里設(shè)置為ini_set('date.timezone','PRC');
//給你一個(gè)最簡單的例子:
?php
date_default_timezone_set('PRC');
$s=intval(date("H"));
if($s=10$s=12){echo?"good?morning";//?10--12點(diǎn)時(shí)}
else{//其他時(shí)間段}
//你也可以稍稍修改后,增加其他判斷
?
下面是時(shí)間戳查詢。如果數(shù)據(jù)庫時(shí)間顯示的是 2011-04-05 那就不需要 用 strtotime 時(shí)間戳轉(zhuǎn)換函數(shù):
$timea = strtotime($_POST['timea']);
$timeb = strtotime($_POST['timeb']);
$sq2="select * from `ecs_order_info` where add_time between '$timea' and '$timeb' and `quanxian`='$dangqian' order by `order_id` DESC limit 50";
$sql = mysql_query($sq2);
擴(kuò)展資料
在php中完成
1、UNIX時(shí)間戳轉(zhuǎn)換為日期用函數(shù): date()
一般形式:date('Y-m-d H:i:s', 1156219870);
2、日期轉(zhuǎn)換為UNIX時(shí)間戳用函數(shù):strtotime()
一般形式:strtotime('2010-03-24 08:15:42');
在MySQL中完成
這種方式在MySQL查詢語句中轉(zhuǎn)換,優(yōu)點(diǎn)是不占用PHP解析器的解析時(shí)間,速度快,缺點(diǎn)是只能用在數(shù)據(jù)庫查詢中,有局限性。
1、UNIX時(shí)間戳轉(zhuǎn)換為日期用函數(shù): FROM_UNIXTIME()
一般形式:select FROM_UNIXTIME(1156219870);
2、日期轉(zhuǎn)換為UNIX時(shí)間戳用函數(shù): UNIX_TIMESTAMP()
一般形式:Select UNIX_TIMESTAMP('2006-11-04 12:23:00′);
舉例:mysql查詢當(dāng)天的記錄數(shù):
$sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”。
求本周的開始和結(jié)束時(shí)間
$w = date('w',time()) - 1;
$start_time = time() - $w * 60 * 60 * 24; ? ? ? ? //星期一的時(shí)間戳
$end_time = time() + (6 - $w) * 60 * 60 * 24; //星期天的時(shí)間戳
M('tablename')-where("create_time = ?{$start_time} and create_time = $end_time")-select();
月份的也很簡單了,求出本月開始和結(jié)束的時(shí)間,然后在根據(jù)時(shí)間查詢就可以了
你這個(gè)要在判斷時(shí)把日期加上。即當(dāng)結(jié)束時(shí)間小于開始時(shí)間的時(shí)候區(qū)間是今天開始到明天結(jié)束。
其實(shí)這個(gè)東西設(shè)計(jì)本身有問題,所以處理起來就復(fù)雜了,我建議你改數(shù)據(jù)庫去,總體時(shí)間/復(fù)雜度成本都低一些。
兩個(gè)字段應(yīng)該分別是開始時(shí)間和持續(xù)時(shí)長,這樣就沒有你說的問題了。只不過當(dāng)你需要顯示結(jié)束營業(yè)時(shí)間的時(shí)候做個(gè)小計(jì)算就好了。