方法一:传统方式,即指定开始时间和结束时间,用"between”或者"",""来建立条件,比如查询2010年3月1日到2010年3月2日的数据条数,则可以使用
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟主机、营销软件、网站建设、琼山网站维护、网站推广。
复制代码 代码如下:
select count(*) from sometable where datetimecolumn='2010-03-01 00:00:00' and datetimecolumn'2010-03-02 00:00:00'
但是,这种方法由于时间不是整数型数据,所以在比较的时候效率较低,所以如果数据量较大,可以将时间转换为整数型的UNIX时间戳,这就是方法二。
select curDate(); #获取当前日期select curTime(); #获取当前时间select now(); #获取当前日期+时间
列举1个天数加减的例子,其他的看英文意思就可以理解了
select date_add(now(), interval 1 day); #当前日期天数+1
select date_add(now(), interval -1 day); #当前日期天数-1
select date_add(now(), interval 1 hour);
select date_add(now(), interval 1 minute);
select date_add(now(), interval 1 second);
select date_add(now(), interval 1 microsecond);
select date_add(now(), interval 1 week);
select date_add(now(), interval 1 month);
select date_add(now(), interval 1 quarter);
select date_add(now(), interval 1 year);
date_sub与date_add功能整合相反
select
date_sub(now(), interval 1 day); #当前日期天数-select date_sub(now(),
interval -1 day); #当前日期天数+select date_sub(now(), interval 1
hour); select date_sub(now(), interval 1 minute)select date_sub(now(),
interval 1 second)select date_sub(now(), interval 1 microsecond)select
date_sub(now(), interval 1 week)select date_sub(now(), interval 1
month)select date_sub(now(), interval 1 quarter)select date_sub(now(),
interval 1 year);
datediff函数计算两个日期间隔的天数
datediff(date1, date2); #date1 - date2
timediff函数计算两个时间间隔
timediff(time1, time2); #time1 - time2
time1和time2的格式必须要一样,返回时间差
str_to_date(str, format) 字符串转换为日期
select str_to_date('11/09/2014', '%m/%d/%Y'); -- 2014-11-09
1.1 获得当前日期+时间(date + time)函数:now()
除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp() current_timestamp
localtime() localtime
localtimestamp() localtimestamp
这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。
1.2 获得当前日期+时间(date + time)函数:sysdate()
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。
2. 获得当前日期(date)函数:curdate()
其中,下面的两个日期函数等同于 curdate(): current_date(),current_date
3. 获得当前时间(time)函数:curtime()
其中,下面的两个时间函数等同于 curtime():current_time(),current_time
4. 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp()
使用mysql的日期函数吧:
select * from A where DATE(data) = '2012-07-09';
这个可以准确的查询到7.9号这天的数据,而且效率很高。
MySQL数据库中year()函数是求某个特定日期中的年份,代码如下:
select
'2015-08-11'
as
date,year('2015-08-11')
as
year;
确定一个日期是一年中的第几个季度,可以用QUARTER()函数实现,代码如下:
SELECT
'2015-08-11'
AS
DATE,QUARTER('2015-08-11')
AS
QUARTER;
返回一个日期是一年中的月份,利用month()函数实现,代码如下:
SELECT
'2015-08-11'
AS
DATE,MONTH('2015-08-11')
AS
MONTH;
获取一个确定日期是一个月份中的多少号,可以用day()函数求得,具体实现代码如下:
SELECT
'2015-08-11'
AS
DATE,DAY('2015-08-11')
AS
DAY;
有时日期中带有时间,而如何获取小时数,这可以利用自带的函数hour()实现,代码如下:
SELECT
'2015-08-11
12:20:45'
AS
DATE,HOUR('2015-08-11
12:20:45')
AS
HOUR;
求取日期时间中的分钟数,可以利用MINUTE()函数实现,代码如下:
SELECT
'2015-08-11
12:20:45'
AS
DATE,MINUTE('2015-08-11
12:20:45')
AS
MINUTE;
最后,获取时间中的秒数,利用SECOND()函数实现,代码如下:
SELECT
'2015-08-11
12:20:45'
AS
DATE,SECOND('2015-08-11
12:20:45')
AS
SECOND;
下面以比较流行的mysql图形化管理工具Navicat为例,其他工具或者在命令行中以及编程语言中操作时的执行的sql语句是一样的。
1、假设在数据库中有一个名为testtest的表格,表格内容如下图所示,表中有三条记录是9月份的
2、打开一个查询窗口,输入查询语句select * from testtest where month(date)='9';,该语句表示查询testtest表格中9月份的记录
3、点击“运行”执行该sql语句,在下方可以看到已经查询到了9月份的三条记录
4、如需按年查询可输入select * from testtest where year(date)='2017';,2017代表需要查询的年份。如下图所示只查询到了一条记录是2017年的