检索保存为字符串的日期

时间:2012-02-03 10:03:19

标签: mysql date

我在保存为varchar的数据库中有日期(2011年9月11日)。我想尝试这样的查询:

$result=mysql_query("SELECT * FROM post WHERE YEAR(STR_TO_DATE(datum,'%e %M %Y') ='2011')") or die(mysql_error());

它正在返回NULL

5 个答案:

答案 0 :(得分:3)

我认为,如果你的字段类型是varchar,你可以使用这种格式。

$result=mysql_query("SELECT * FROM post WHERE datum LIKE '%2011'") or die(mysql_error());

答案 1 :(得分:1)

示例:

SELECT * FROM post WHERE YEAR(STR_TO_DATE(datum,'%d %M %Y'))= 2011;

SELECT YEAR(STR_TO_DATE('11 September 2011','%d %M %Y'));

答案 2 :(得分:0)

从MySQL论坛查看此论坛帖子并根据您的需要修改解决方案。

http://forums.mysql.com/read.php?10,377334,377365

答案 3 :(得分:0)

您应该将列类型更改为数据库表中的datetime以备将来使用。例如,您可能需要datetime来执行加法,减法,倒计时等操作。因此,如果您想进行比较或验证,这将更容易。因此,您的mysql语句可以很容易,如下所示。

SELECT FROM FROM tbl_name WHERE column_name< = date_col;

答案 4 :(得分:-1)

您将无法得到答案,因为......您已将varchar()添加到数据库中,因此无需STR_TO_DATE(datum,'%e %M %Y');只需输入select * from table name where column name="2011"