在我的表“news”里面有“date_in”字段存储日期,当这个格式为“20150108”时创建了一些新闻;如何仅从今年的mysql数据库获取数据
我需要获得今年的新闻。
select title, text from news where date_in = ?
我该如何使用php/mysql来做到这一点?
感谢
在我的表“news”里面有“date_in”字段存储日期,当这个格式为“20150108”时创建了一些新闻;如何仅从今年的mysql数据库获取数据
我需要获得今年的新闻。
select title, text from news where date_in = ?
我该如何使用php/mysql来做到这一点?
感谢
您可以从给定的格式选择为低于上年。
mysql> select year('20150108');
+------------------+
| year('20150108') |
+------------------+
| 2015 |
+------------------+
1 row in set (0.00 sec)
所以在查询您使用子今年筛选出可以
select
title,
text
from news
where year(date_in) = year(curdate());
它会帮助你Documentation Here
SELECT title, text FROM news WHERE YEAR(date_in) = YEAR(CURDATE());
它会帮助你
select title, text from news where YEAR(date_in) = YEAR(CURDATE())
尝试,如果该date_in列类型为nvarchar,VARCHAR等:
SELECT title, text
FROM news
WHERE date_in = SUBSTRING(date_in, 1, 4)
易于方法是用year()
:
select title, text
from news
where year(date_in) = year(now());
更好的方法是避免在当前日期使用函数。假设你已经没有前途日期:
select title, text
from news
where date_in >= makedate(year(now(), 1);
这个版本更好,因为查询可以在date_in
采取指数的优势。
首先,$ CurrentYear = date('Y'); //当年即2015年 然后,选择标题,正文从新闻WHERE date_in LIKE '%$ CurrentYear%'
选择标题,从新闻文本,其中date_in> 20150101
或$查询=“选择标题,来自新闻的文本where date_in>'。日期(“Y”)。 '0101';
首先,将列数据类型设置为“DATE”,然后使用“YEAR()”mysql函数 – Ghost 2015-03-31 11:35:01
date_in字段的数据类型是什么。 – 2015-03-31 11:35:15
看看[本教程](http://www.w3schools.com/php/php_mysql_connect.asp)。你的问题是相当广泛的,取决于许多数据库设置,只有你会有。 – 2015-03-31 11:36:02