如何比较MySQL中的字符串与日期?

时间:2014-03-16 09:36:39

标签: mysql sql

我有2个表table1,列tran_date数据类型为datetime,table2有列tran_date数据类型varchar(50)。

表2中的

tran_date的值类似于1/1/2000。

现在如何比较这两列?

我尝试了以下内容:

select * 
from table1 t1, table2 t2
where CAST(t1.tran_date AS DATETIME) = CAST(t2.tran_date AS DATETIME)

问候:

2 个答案:

答案 0 :(得分:1)

MySQL只有一个名为STR_TO_DATE()的函数,它将一个字符串转换为一个日期,然后你可以用它来将它与另一个日期进行比较。

以下是一个例子:

SELECT * 
FROM table1 t1, table2 t2
WHERE STR_TO_DATE(t2.tran_date, '%m/%d/%Y') = t1.tran_date

注意它需要指定日期格式(第二个参数)。有关详细信息,请查看STR_TO_DATE()参考。

希望它有所帮助。

答案 1 :(得分:0)

使用 STR_TO_DATE()

SELECT * 
FROM table1 t1, table2 t2
WHERE STR_TO_DATE(t1.tran_date, '%m/%d/%Y') = STR_TO_DATE(t2.tran_date, '%m/%d/%Y')