首先要考慮給數據庫減壓,意思就是讓數據庫做最簡單的事情。你可以把條件在php里邊組裝好,然后讓mysql只單一的執(zhí)行查詢就好了,php的時間代碼給你貼一下吧
創(chuàng)新互聯于2013年創(chuàng)立,先為德興等服務建站,德興等地企業(yè),進行企業(yè)商務咨詢服務。為德興企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
?php
date_default_timezone_set('Asia/Shanghai');?
echo?"今天:".date("Y-m-d?H:i:s")."br";?????
echo?"昨天:".date("Y-m-d",strtotime("-1?day")),?"br";?????
echo?"明天:".date("Y-m-d",strtotime("+1?day")).?"br";??
echo?"一周后:".date("Y-m-d",strtotime("+1?week")).?"br";?
echo?"一周前:".date("Y-m-d",strtotime("-1?week")).?"br";????
echo?"一周零兩天四小時兩秒后:".date("Y-m-d?G:H:s",strtotime("+1?week?2?days?4?hours?2?seconds")).?"br";?????
echo?"下個星期四:".date("Y-m-d",strtotime("next?Thursday")).?"br";?????
echo?"上個周一:".date("Y-m-d",strtotime("last?Monday"))."br";?????
echo?"一個月前:".date("Y-m-d",strtotime("last?month"))."br";?????
echo?"一個月后:".date("Y-m-d",strtotime("+1?month"))."br";?????
echo?"十年后:".date("Y-m-d",strtotime("+10?year"))."br";?
echo?'hr/';
//php獲取今日開始時間戳和結束時間戳?
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
echo?"今日開始時間戳和結束時間戳",'開始:',$beginToday,'結束:',$endToday,'br/';
echo?"今日開始時間:",date("Y-m-d?H:i:s",$beginToday),'br/';
echo?"今日結束時間:",date("Y-m-d?H:i:s",$endToday),'br/';
echo?'hr/';
//php獲取昨日起始時間戳和結束時間戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;?
echo?"昨日開始時間戳和結束時間戳",'開始:',$beginYesterday,'結束:',$endYesterday,'br/';
echo?"昨日開始時間:",date("Y-m-d?H:i:s",$beginYesterday),'br/';
echo?"昨日結束時間:",date("Y-m-d?H:i:s",$endYesterday),'br/';
echo?'hr/';
//php獲取上周起始時間戳和結束時間戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
echo?"上周開始時間戳和結束時間戳",'開始:',$beginLastweek,'結束:',$endLastweek,'br/';
echo?"上周開始時間:",date("Y-m-d?H:i:s",$beginLastweek),'br/';
echo?"上周結束時間:",date("Y-m-d?H:i:s",$endLastweek),'br/';
echo?'hr/';
//php獲取本月起始時間戳和結束時間戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
echo?"本月開始時間戳和結束時間戳",'開始:',$beginThismonth,'結束:',$endThismonth,'br/';
echo?"本月開始時間:",date("Y-m-d?H:i:s",$beginThismonth),'br/';
echo?"本月結束時間:",date("Y-m-d?H:i:s",$endThismonth),'br/';
?
用函數date_sub或date_add直接對"年"部分去減就可以了,見下面示例:
mysql select now();
+---------------------+
| now() |
+---------------------+
| 2010-08-25 09:34:41 |
+---------------------+
1 row in set (0.00 sec)
mysql select date_add(now(),interval -1 year);
+----------------------------------+
| date_add(now(),interval -1 year) |
+----------------------------------+
| 2009-08-25 09:34:44 |
+----------------------------------+
1 row in set (0.00 sec)
mysql select date_sub(now(),interval 1 year);
+---------------------------------+
| date_sub(now(),interval 1 year) |
+---------------------------------+
| 2009-08-25 09:34:46 |
+---------------------------------+
1 row in set (0.00 sec)
mysql
就是表中的date字段值為當前的系統(tǒng)日期,例如:
select * from `xxx` where `date`=curdate()
sqlserver使用getdate函數,mysql使用now函數。
如果時間戳是字符串型的,格式通常是yyyy-mm-dd,因此前四位是年,第六、七位是月,最后兩位是日。用substring函數來截取,substring(字段名,1,4)是年份,substring(字段名,6,2)是月份,substring(字段名,9,2)是日。