MySQL时间相关处理
区别:
FROM_UNIXTIME(time,'%Y-%m-%d'):返回2014-05-19,如果不加'%Y-%m-%d',则默认返回2014-05-19 15:03:06。 其中time是10位时间戳。
DATE_FORMAT(date,'%Y-%m-%d'):返回:2014-05-19,如果不加'%Y-%m-%d',则默认返回2014-05-19 15:03:06。 其中date是2014-05-19这样的日期格式。
NOW():返回2014-05-19 18:16:28 参数为空。
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();
11.获取分用minute();
12.获取秒用second();
13.创建时间mktime(0,0,0,“$_POST[]”,“$_POST[]”,“$_POST[]”);
14.获取两天前(包括昨天)的sql语句是:
select * from tablename where 【字段名】between date_sub(curdate(),interval 2 day) and curdate();
或者:
select * from tablename 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)