分段查詢是指查詢一個(gè)時(shí)間段的數(shù)據(jù),如我想查出20131030到20131031號(hào)之間的數(shù)據(jù)這就是時(shí)間日期分段查詢了,或幾天前的,幾個(gè)月的數(shù)據(jù)都可以這樣實(shí)現(xiàn),下面小編來(lái)給大家總結(jié)一下mysql日期時(shí)間各種查詢語(yǔ)句.
php中的mktime函數(shù)按時(shí)間分段查詢,其實(shí)除了這種解決方案以外,在MySql中也有專門針對(duì)日期和時(shí)間的函數(shù),包括DATE()、DATE_ADD()、DATE_SUB()、DATE_FORMAT()等等。
php實(shí)例代碼如下:
最近三個(gè)月內(nèi)的訂單情況,SQL語(yǔ)句如下:
$sql=”SELECT * FROM shopping_order WHERE dtTime>=DATE_SUB(NOW(), INTERVAL 3 MONTH)”;
如果是查詢最近15天內(nèi)的訂單,則SQL語(yǔ)句如下:
$sql=”SELECT * FROM shopping_order WHERE dtTime>=DATE_SUB(NOW(), INTERVAL 15 DAY)”;
mktime函數(shù),代碼如下:
函數(shù)來(lái)查詢下最近三個(gè)月內(nèi)的訂單情況,SQL語(yǔ)句如下:
$bgdte=date(”Y-m-d H:i:s”,mktime(date(’H'),date(’i'),date(’s’),date(’m')-3,date(’d'),date(’Y')));
$sql=”SELECT * FROM shopping_order WHERE dtTime>=’”.$bgdte.”‘”;
如果是查詢最近15天內(nèi)的訂單,則SQL語(yǔ)句如下:
$bgdte=date(”Y-m-d H:i:s”,mktime(date(’H'),date(’i'),date(’s’),date(’m'),date(’d')-15,date(’Y'))); //Vevb.com
$sql=”SELECT * FROM shopping_order WHERE dtTime>=’”.$bgdte.”‘”;
sql按年月分組和按月分組查詢語(yǔ)句,代碼如下:
按月分組:select month(FROM_UNIXTIME(time)) from table_name group by month(FROM_UNIXTIME(time))
按年月分組:select DATE_FORMAT(FROM_UNIXTIME(time),"%Y-%m") from tcm_fund_list group by DATE_FORMAT(FROM_UNIXTIME(time),"%Y-%m")
其中time是整數(shù)如:1159718400 代表2006-10-02.
查詢今天、昨天、7天、近30天、本月、上一月 數(shù)據(jù),代碼如下:
今天:select * from 表名 where to_days(時(shí)間字段名) = to_days(now());
昨天:SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 時(shí)間字段名) <= 1
7天:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(時(shí)間字段名)
近30天:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(時(shí)間字段名)
本月:SELECT * FROM 表名 WHERE DATE_FORMAT( 時(shí)間字段名, ‘%Y%m’ ) = DATE_FORMAT( CURDATE( ) , ‘%Y%m’ )
上一月:SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , ‘%Y%m’ ) , date_format( 時(shí)間字段名, ‘%Y%m’ ) ) =1
新聞熱點(diǎn)
疑難解答
圖片精選