如果日期列定义为TEXT,如何在mysql中比较日期

时间:2019-03-25 11:02:32

标签: java mysql

我在MySQL中将日期列设为“ TEXT”,现在我试图选择在特定日期之前输入的所有行,该怎么办?

2 个答案:

答案 0 :(得分:0)

您需要做的就是这样:

SELECT *
FROM yourTable
WHERE text_date_col < '2019-03-25';

这假设您甚至使用有效的MySQL日期文字格式存储日期。如果没有,则需要在上述查询中使用STR_TO_DATE(text_date_col, '%d-%m-%Y')

但是,通常您应该将日期作为文本存储在MySQL或任何其他数据库中(对于SQLite可能除外)。原因是MySQL具有围绕DATE类型的丰富功能集。但是,通过将日期存储为文本,您将失去很多这种能力。

答案 1 :(得分:0)

  

SELECT STR_TO_DATE('25 -03-2019','%d-%m-%Y')

使用它可以将“ TEXT”转换为日期,然后进行比较。

  

选择STR_TO_DATE(UR_TEXT_FIELD,YOUR_SAVED_FORMAT),然后应用所需的比较