查询
今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1
7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本月
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
上一月
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1
SELECT DATE_SUB(curdate(), INTERVAL 1 DAY); 或者 SELECT curdate() - INTERVAL 1 DAY;
1.存储日期时间用now();
2.存储日期用curdate()/current_date;
3.存储时间用time();
4.获取年份用year();
5.获取月份用month();
6.获取月份中的日期用day()或者dayofmonth();
7.获取昨天就用date_sub(curdate(),interval 1 day)/date_sub(current_date,interval 1 day);
或者curdate()-interval 1 day; 【-表减去1天,如果是+表示加上1天】
或者to_days(curdate())-to_days(字段名)=1
【注:】
a.有to_days函数,没有to_months()和to_years()函数。
b.to_days()函数是把日期转化为距离公元0年的天数。
8.获取前一个月就用date_sub(curdate(),interval 1 month)/date_sub(current_date(),interval 1 month);
9.获取去年就用date_sub(curdate(),interval 1 year)/date_sub(currentdate(),interval 1 year);
10.获取小时用hour();
1小时之内
SELECT * FROM tl_imap_sck WHERE access_time> DATE_SUB(NOW(),INTERVAL 1 HOUR)
11.获取分用minute();
12.获取秒用second();
13.创建时间mktime(0,0,0,“$_POST[]”,“$_POST[]”,“$_POST[]”);
14.获取两天前(包括昨天)的sql语句是:
select * from pname where 【字段名】between date_sub(curdate(),interval 2 day) and curdate();
或者:
select * from pname where to_days(curdate())-to_days(字段名)<=2;
15.DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
16.WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
17.DAYOFYEAR(date)
返回date在一年中的日数, 在1到366范围内。
mysql> select DAYOFYEAR(‘1998-02-03’);
-> 34
18.DAYNAME(date)
返回date的星期名字。
mysql> select DAYNAME(“1998-02-05”);
-> 'Thursday'
19.QUARTER(date)
返回date一年中的季度,范围1到4. (1-3月为1,4-6月为2,7-9月为3,10-12月为4)