视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql日期查询操作_MySQL
2020-11-09 18:24:53 责编:小采
文档


bitsCN.com


mysql日期查询操作

/////////////////今天找到了一些比较有用的mysql日期函数,在此做一下记录,以备后期使用///////////////////////

今天

select * from 表名 where to_days(时间字段名) = to_days(now());

昨天

Select * FROM 表名 Where TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) <= 1

7天前 如果是7天后就是DATE_ADD函数

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_format(now(),'%Y%m%d%H%i%S')

//时间转成年月日

select date_format(now(),'%Y%m%d')

//去年此时

select DATE_ADD(now(), Interval -1 year)

//上月此时

select DATE_ADD(now(), Interval -1 month)

//昨天此时

select DATE_ADD(now(), Interval -1 day)

//一小时前

select DATE_ADD(now(), Interval -1 hour)

//一分钟前

select DATE_ADD(now(), Interval -1 minute)

//一秒钟前

select DATE_ADD(now(), Interval -1 second)

//昨天(年月日)

select date_format(DATE_ADD(now(), Interval 1 day),'%Y%m%d')

//上个月第一天和最后一天

select date_sub(date_sub(date_format(now(),'%Y%m%d'),interval extract( day from now())-1 day),interval 1 month);

select date_sub(date_sub(date_format(now(),'%Y%m%d'),interval extract(day from now()) day),interval 0 month);

//某个字符串

select date_format(DATE_ADD('20090605123020', Interval 20 minute),'%Y%m%d')

//第几周

select weekofyear( now() )

select weekofyear('20090606')

在mysql中,会把'20090707123050'和'20090707'格式的字符串作为date类型转换。

在mysql中,没有类似oracle的to_char(num,format)函数,所以涉及到数字前面补0的情况需要特殊处理。

如select left(concat('00'),@num),3)就会显示三位数字的字符串, @num=1时显示001,为123是显示123。

CONCAT(YEAR(a.createtime),LEFT(CONCAT('0',WEEKOFYEAR(a.createtime)),2))

还有FROM_UNIXTIME 这个可以数字转日期

bitsCN.com

下载本文
显示全文
专题