我在MySQL中将日期列设为“ TEXT”,现在我试图选择在特定日期之前输入的所有行,该怎么办?
答案 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),然后应用所需的比较