【mysql】时间日期

#时间转字符串

select date_format(now(), '%Y-%m-%d');  
#结果:2017-02-27

#时间转时间戳
select unix_timestamp(now());
#结果:1488160428

#字符串转时间
select str_to_date('2017-02-27', '%Y-%m-%d %H');  
#结果:2017-02-27 00:00:00

#字符串转时间戳
select unix_timestamp('2017-02-27');  
#结果:1488124800

#时间戳转时间
select from_unixtime(1488160428);  
#结果:2017-02-27 09:53:48

#时间戳转字符串
select from_unixtime(1488160428,'%Y-%m-%d %T');  
#结果:2017-02-27 09:53:48

------------------------------------------------------------
MySQL日期格式化(format)取值范围。

值    含义
秒    %S、%s    两位数字形式的秒( 00,01, ..., 59)
分    %I、%i    两位数字形式的分( 00,01, ..., 59)
小时     %H    24小时制,两位数形式小时(00,01, ...,23)
%h    12小时制,两位数形式小时(00,01, ...,12)
%k    24小时制,数形式小时(0,1, ...,23)
%l    12小时制,数形式小时(0,1, ...,12)
%T    24小时制,时间形式(HH:mm:ss)
%r     12小时制,时间形式(hh:mm:ss AM 或 PM)
%p     AM上午或PM下午
  周      %W    一周中每一天的名称(Sunday,Monday, ...,Saturday)
 %a    一周中每一天名称的缩写(Sun,Mon, ...,Sat)
%w     以数字形式标识周(0=Sunday,1=Monday, ...,6=Saturday)
%U    数字表示周数,星期天为周中第一天
%u    数字表示周数,星期一为周中第一天
天    %d     两位数字表示月中天数(01,02, ...,31)
%e      数字表示月中天数(1,2, ...,31)
 %D    英文后缀表示月中天数(1st,2nd,3rd ...)
 %j    以三位数字表示年中天数(001,002, ...,366)
月    %M     英文月名(January,February, ...,December)
%b     英文缩写月名(Jan,Feb, ...,Dec)
%m     两位数字表示月份(01,02, ...,12)
%c     数字表示月份(1,2, ...,12)
年    %Y     四位数字表示的年份(2015,2016...)
%y      两位数字表示的年份(15,16...)
文字输出     %文字     直接输出文字内容

 

1、当前日期
select DATE_SUB(curdate(),INTERVAL 0 DAY) ;
2、明天日期
select DATE_SUB(curdate(),INTERVAL -1 DAY) ;
3、昨天日期
select DATE_SUB(curdate(),INTERVAL 1 DAY) ;
4、前一个小时时间
select date_sub(now(), interval 1 hour);
5、后一个小时时间
select date_sub(now(), interval -1 hour);
6、前30分钟时间
select date_add(now(),interval -30 minute)
7、后30分钟时间
select date_add(now(),interval 30 minute)
-----------------------------------------------------------------
1、查询当天的数据
select * from 表名 where TO_DAYS(时间字段)=TO_DAYS(NOW());
2、查询当周的数据
select * from 表名 where YEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d'))=YEARWEEK(NOW());
3、查询当月的数据
select * from 表名 where DATE_FORMAT(时间字段,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m');
4、查询昨天的数据
select * from 表名 where TO_DAYS(NOW())-TO_DAYS(时间字段)=1;
5、查询最近7天的数据
select * from 表名 where DATE_SUB(CURDATE(),INTERVAL 7 DAY)<=DATE(时间字段);
6、查询当年的数据
select * from 表名 where YEAR(时间字段) =YEAR(NOW());
7、查询上周的数据
select * from 表名 whereYEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d'))=YEARWEEK(NOW())-1;
8、查询上月的数据
select *from 表名
where PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(时间字段,'%Y%m'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值