MONTH(date) 返回date的月份,范围1到12。
MINUTE(date) 返回date的分钟,范围是0到59。
返回月份匹配的结果集
SELECT *
FROM tableA
WHERE EXTRACT(MONTH FROM NOW( )) =
EXTRACT(MONTH FROM logtime)
SELECT *
FROM tableA
WHERE MONTH(NOW( )) =
MONTH(logtime)
返回分钟匹配的结果集
SELECT *
FROM tableA
WHERE EXTRACT(MINUTE FROM NOW( )) =
EXTRACT(MINUTE FROM logtime)
SELECT *
FROM tableA
WHERE MINUTE(NOW( )) =
MINUTE(logtime)
你可以用年和月一起比较啊,去年,前年都不成问题,你原来问题没有说清楚前提和背景。
想查x个月以前的信息
if当前月<=x
SELECT *
FROM tableA
WHERE MONTH(logtime) <=(12-x+MONTH(NOW( ))) AND YEAR(logtime)<YEAR(NOW())
else
SELECT *
FROM tableA
WHERE MONTH(logtime) <=(MONTH(NOW( )-x) AND YEAR(logtime)<=YEAR(NOW())
在date的分钟上加上x分钟: DATE_ADD(date,INTERVAL x MINUTE)
MYSQL中也有DATEDIFF函数
DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分
很明显和MSSQL里的datefiff形同神异,并没有过多的参数,只能比较天的差别。
所以在MySQL要加上自己的处理才行。
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年的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)