Axx*_*ess 15 mysql format select date
在MySQL中我有这个查询
SELECT DISTINCT date, descr FROM book ORDER BY date
Run Code Online (Sandbox Code Playgroud)
日期格式 yyyy-mm-dd
我想从2012年1月开始只选择这些书.我试过使用,like但这不起作用.
有任何想法吗?
him*_*056 29
使用DATE_FORMAT功能
SELECT DISTINCT date, descr FROM book
WHERE DATE_FORMAT(date, '%Y %m') = DATE_FORMAT('2012-01-01', '%Y %m')
ORDER BY date
Run Code Online (Sandbox Code Playgroud)
SELECT DISTINCT date, descr FROM book
WHERE Month(date) = Month('2012-01-01')
AND Year(date) = Year('2012-01-01')
ORDER BY date;
Run Code Online (Sandbox Code Playgroud)
或使用BETWEEN功能
SELECT DISTINCT date, descr FROM book
WHERE date BETWEEN '2012-01-01'
AND '2012-01-31'
ORDER BY date;
Run Code Online (Sandbox Code Playgroud)
SELECT DISTINCT date, descr FROM book
WHERE date >= '2012-01-01'
AND date <= '2012-01-31'
ORDER BY date;
Run Code Online (Sandbox Code Playgroud)
你可以在这里使用>=和<=运营商.检查以下代码:
SELECT *
FROM book
WHERE date >= '2012-01-01' AND date <= '2012-01-31'
Run Code Online (Sandbox Code Playgroud)
小智 5
使用 like 也有效。使用@hims056 fiddle,你可以测试它:
SELECT DISTINCT ID, date FROM book
WHERE date LIKE '2012-01%'
ORDER BY date;
Run Code Online (Sandbox Code Playgroud)
但是,通常不使用 like 进行日期过滤,对我来说,使用 >= 和 <= 或之间更自然。此外,还有性能优势。
| 归档时间: |
|
| 查看次数: |
44828 次 |
| 最近记录: |