試試這個(gè)
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)欽州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
select * from table1 where month(date)='您要查詢的月份' order by date;
year(date) 即為年份
day(date) 顧名思義
//當(dāng)天時(shí)間
$where['time']?=?array(
array('egt',strtotime(date('Y-m-d',time())),
array('lt',strtotime(date('Y-m-d',time())).'+1?day')
);
//?本周時(shí)間
$where['time']?=?array(
array('egt',strtotime(date('Y-m-d',time())).'-'.date('w',time()).'?day'),
array('lt',strtotime(date('Y-m-d',time())).'+1?week?-'.date('w',time()).'?day');
);
//?本月時(shí)間
$where['time']?=?array(
array('egt',strtotime(date('Y-m',time()))),
array('lt',strtotime(date('Y-m',time()).'+1?month'))
);
//?本年時(shí)間
$where['time']?=?array(
array('egt',strtotime(date('Y',time()))),
array('lt',strtotime(date('Y',time()).'+1?year'))
);
上面是查詢條件,直接運(yùn)用到查詢語(yǔ)句就可以了
$result?=?$db-where($where)-select();
更正下上面的那個(gè)?本年?查詢時(shí)間
$where['time']?=?array(
array('egt',strtotime(date('Y-01-01',time())),
array('lt',strtotime(date('Y-01-01',time()).'+1?year'))
);
從你的結(jié)構(gòu)可以看出,你的日期使用的是UNIX時(shí)間戳,不是數(shù)據(jù)庫(kù)的日期類型,這個(gè)可以使用函數(shù)FROM_UNIXTIME轉(zhuǎn)換為數(shù)據(jù)庫(kù)日期類型,然后使用date_format函數(shù)轉(zhuǎn)換為指定格式。也可以使用UNIX_TIMESTAMP函數(shù)把日期轉(zhuǎn)換為時(shí)間戳進(jìn)行比較。
例如:查詢本月的數(shù)據(jù)條件可以這樣寫(xiě):
WHERE date_format(FROM_UNIXTIME(`time`),'%Y%m')='201504'
還可以這樣:
WHERE `TIME` BETWEEN UNIX_TIMESTAMP('2015-04-01 00:00:00') AND UNIX_TIMESTAMP('2015-04-30 23:59:59')
如果數(shù)據(jù)量特別多,后一種方式的查詢速度更快,前提的`time`字段有索引。
這個(gè)time()函數(shù)是將時(shí)間保存成時(shí)間戳格式,則要查當(dāng)月數(shù)據(jù),只要查當(dāng)月第一天到當(dāng)月最后一天的之間的數(shù)據(jù)即可。
假設(shè)這個(gè)用來(lái)判斷的字段是date
sql語(yǔ)句
SELECT ………… WHERE………… `date` = 本月第一天的time值 AND `date` 下個(gè)月第一天的time值
所以這里就只要獲取當(dāng)月第一天以及下個(gè)月第一天的時(shí)間戳
具體如下:
?php
$cur = date('Y-m',time());//當(dāng)天年月
$cur_y = date('Y',time());//當(dāng)天年份
$cur_m = date('m',time());//當(dāng)天月份
$cur_f = $cur . '-1';//本月首日
$first = strtotime($cur_f);//時(shí)間戳最小值,本月第一天時(shí)間戳
//下月首日
if($cur_m=12){
$cur_n = ($cur_y+1) . '-1-1';
}else{
$cur_n = $cur_y . '-' . ($cur_m+1) . '-1';
}
$last = strtotime($cur_n);//時(shí)間戳最大值,下個(gè)月第一天時(shí)間戳
?
再把$first 和 $last 放入sql語(yǔ)句里面就可以查詢到數(shù)據(jù)了