一: 下面这条语句查出来的count值 。 查询类型ID(category_id)为18的,今天插入的数据数,
created_on: 为数据表中一字段 datetime类型, 记录此条数据添加的时间
category_id :为数据表中一字段 Int类型,
SELECT COUNT(*) FROM post WHERE DATE_FORMAT(created_on,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') AND category_id=18
今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天(dateTime 类型不试用)
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 * FROM 表名 WHERE DATE_FORMAT(时间字段名,'%Y-%m-%d') = DATE_FORMAT( DATE_SUB(CURDATE(),INTERVAL 1 DAY),'%Y-%m-%d')
查询前三个月的数据(包含当前月,如果不包含当前月向前在推一个月 ">=" 改成 ">" 即可 )
SELECT * FROM w_jcyy_qxjjl WHERE 时间字段 >= DATE_SUB(CURDATE(), INTERVAL 2 MONTH)
定义和用法
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法 date 参数是合法的日期。format 规定日期/时间的输出格式。
DATE_FORMAT(date,format)
可以使用的格式有:
格式描述
%a
缩写星期名
%b
缩写月名
%c
月,数值
%D
带有英文前缀的月中的天
%d
月的天,数值(00-31)
%e
月的天,数值(0-31)
%f
微秒
%H
小时 (00-23)
%h
小时 (01-12)
%I
小时 (01-12)
%i
分钟,数值(00-59)
%j
年的天 (001-366)
%k
小时 (0-23)
%l
小时 (1-12)
%M
月名
%m
月,数值(00-12)
%p
AM 或 PM
%r
时间,12-小时(hh:mm:ss AM 或 PM)
%S
秒(00-59)
%s
秒(00-59)
%T
时间, 24-小时 (hh:mm:ss)
%U
周 (00-53) 星期日是一周的第一天
%u
周 (00-53) 星期一是一周的第一天
%V
周 (01-53) 星期日是一周的第一天,与 %X 使用
%v
周 (01-53) 星期一是一周的第一天,与 %x 使用
%W
星期名
%w
周的天 (0=星期日, 6=星期六)
%X
年,其中的星期日是周的第一天,4 位,与 %V 使用
%x
年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y
年,4 位
%y
年,2 位
实例
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635