MySQL选择日期类似的行

MySQL选择日期类似的行,mysql,date,select,format,Mysql,Date,Select,Format,在MySQL中,我有这个查询 SELECT DISTINCT date, descr FROM book ORDER BY date 日期的格式为yyyy-mm-dd 我只想选择2012年1月的书籍。我试着像一样使用,但那不起作用 有什么想法吗?试试这个: SELECT DISTINCT date, descr FROM book WHERE YEAR(date) = '2012' and MONTH(date) = '1' 如果您的“日期”列是MySQL日期字段,则可以使用此函数 或使用和

在MySQL中,我有这个查询

SELECT DISTINCT date, descr FROM book ORDER BY date
日期的格式为
yyyy-mm-dd

我只想选择2012年1月的书籍。我试着像一样使用
,但那不起作用

有什么想法吗?

试试这个:

SELECT DISTINCT date, descr FROM book WHERE YEAR(date) = '2012' and MONTH(date) = '1'
如果您的“日期”列是MySQL日期字段,则可以使用此函数

或使用和功能

SELECT DISTINCT date, descr FROM book 
WHERE Month(date) = Month('2012-01-01')
AND Year(date) = Year('2012-01-01')
ORDER BY date;
SELECT DISTINCT date, descr FROM book 
WHERE date BETWEEN '2012-01-01'
AND '2012-01-31'
ORDER BY date;
或者使用函数

SELECT DISTINCT date, descr FROM book 
WHERE Month(date) = Month('2012-01-01')
AND Year(date) = Year('2012-01-01')
ORDER BY date;
SELECT DISTINCT date, descr FROM book 
WHERE date BETWEEN '2012-01-01'
AND '2012-01-31'
ORDER BY date;
或使用和运算符

SELECT DISTINCT date, descr FROM book 
WHERE date >= '2012-01-01'
AND date <= '2012-01-31'
ORDER BY date;
选择不同的日期,从书本中描述
其中日期>='2012-01-01'

和日期您可以使用
=
='2012-01-01'和日期

这将为您提供今年的书籍

如果您坚持要使用类似的语法,可以先将日期转换为字符:


选择不同的日期,从书中描述,如“2012-01%”按日期排序

使用like也有效。使用@hims056小提琴,您可以测试它:

SELECT DISTINCT ID, date FROM book 
WHERE date LIKE '2012-01%'
ORDER BY date;

但是,使用like进行日期筛选并不常见,对我来说,使用>=和“日期格式为yyyy-mm-dd”更为自然,日期列是实际的日期值吗?或者仅仅是一个字符串?您需要将其更正为
WHERE YEAR(date)>=date(NOW())和MONTH(date)=“1”
,以使其正常工作,并且为每行调用3个函数将是非常低效的查询nx,以获取信息这非常有帮助!这很方便找到一个独立于年份的特定时间,例如“%-01-01 00:00:00”
SELECT DISTINCT ID, date FROM book 
WHERE date LIKE '2012-01%'
ORDER BY date;