选择日期(字符串日期)

时间:2012-09-05 10:05:52

标签: mysql date datetime select

我有一个包含类型文本列的表,我在插入查询中使用NOW()存储各种设置,包括日期。

现在我想从此表中获取此列在特定日期之前的所有行(例如2012-09-19)。

通过DATE(date_column)<DATE(NOW())进行比较很简单,但我不知道如何传递特定日期而不是NOW(),因为输入字符串的日期格式可能不同。

以下是示例代码:

INSERT INTO table (date_column) VALUES (NOW())

选择时:

SELECT * FROM table WHERE DATE(date_column)<DATE('2012-09-19');

编辑:上面的代码实际上有效。我最初错过了约会时的报价。

2 个答案:

答案 0 :(得分:0)

如果date_column真的是DATE类型,则不需要在其上运行DATE()。

另请注意,在date_column上运行DATE()会阻止MySQL使用任何索引,因此您将进行表扫描。

尝试:

WHERE date_column < '2012-09-19'

答案 1 :(得分:0)

避免在列类型(WHERE FUNCTION(col) ...)周围放置函数。这会降低性能。您希望拥有一个具有域完整性的表,这意味着如果您要存储日期,则它是date类型。

要选择与date匹配的记录,只需将YYYY-MM-DD日期包含在引号中:

SELECT * FROM table WHERE date_column < '2012-09-19'