我的列名称为date
。此列的格式类似于D/M/Y
(14/11/2016)
。我只想选择2016年。我该怎么办?
我现在正在使用此代码,我必须添加什么?
mysql_query("SELECT * FROM blog ORDER BY id DESC");
答案 0 :(得分:4)
您的查询可能是:
"SELECT * FROM blog WHERE YEAR(date)='2016' ORDER BY id DESC";
如果您的日期列是日期数据类型。但由于你没有使用标准的mysql日期格式(YYYY-MM-DD),我猜它不是。
请注意您使用的是不推荐使用的MYSQL_ * API,您应该切换到MYSQLI或PDO
答案 1 :(得分:1)
我建议你不要使用mysql_query并转而使用PDO或MySQLi,而是根据你的问题:
mysql_query("SELECT * FROM blog WHERE YEAR(Date) = 2016 ORDER BY id DESC")
答案 2 :(得分:1)
mysql_query("SELECT * FROM blog WHERE YEAR(Date) = 2016 ORDER BY id DESC");
或
mysql_query("SELECT * FROM blog WHERE date >= "00/00/2016" AND date <= "31/12/2016" ORDER BY id DESC");
或
mysql_query("SELECT DATE_FORMAT(date, '%d %m %Y') AS your_date FROM blog WHERE your_date LIKE "%2016" ORDER BY id DESC");
答案 3 :(得分:1)
试试这段代码:
SELECT YEAR(STR_TO_DATE('14/11/2016', '%d/%m/%Y'));