MySQL选择具有日期的行

标签 mysql sql date select date-formatting

在 MySQL 中我有这个查询

SELECT DISTINCT date, descr FROM book ORDER BY date

日期格式为 yyyy-mm-dd

我只想选择 2012 年 1 月 的书籍。我试过使用 like 但它不起作用。

有什么想法吗?

最佳答案

使用 DATE_FORMAT 功能

SELECT DISTINCT date, descr FROM book 
WHERE DATE_FORMAT(date, '%Y %m') = DATE_FORMAT('2012-01-01', '%Y %m')
ORDER BY date

或使用 MONTH YEAR 功能

SELECT DISTINCT date, descr FROM book 
WHERE Month(date) = Month('2012-01-01')
AND Year(date) = Year('2012-01-01')
ORDER BY date;

或使用 BETWEEN 功能

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;

See this SQLFiddle

关于MySQL选择具有日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216033/

相关文章:

php - 上传文件并设置权限

mysql - 如何比较同一个表中的两行,但列小于和大于数字

php - 将我的两次 mysql 调用减少为一次

sql - 针对 Oracle db 的控制中断类型 SQL

mysql - 相当于关系代数中的 GroupBy 和having 子句

r - R中的分类日期变量

php - 如果用户选择 `All`,如何从所有选项中检索数据

mysql - 请帮助: Multi-part identifier could not be bound

NSManagedObject 的 Date 与 NSDate 的 Xcode 9 构建问题

java - 具有日期属性的 Hibernate Search MultiFieldQueryParser