在mysql查询中将char转换为date

时间:2016-03-16 19:07:58

标签: mysql

我在phpmyadmin中有一个名为transaction_details的表,其中我有一个名为tr_date的列,其数据类型为char(10),样本值为'21 -02-2016'。

我想使用以下查询将该char转换为日期---

SELECT str_to_date('SUBSTR( tr_date, 1, 2 ),SUBSTR( tr_date, 4, 2 ),SUBSTR(tr_date, 7, 4 )','%d,%m,%Y') FROM transaction_details where tr_id=3;

但是当我执行查询时,它返回NULL。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

我怀疑你需要那些单引号。这可能就是你想要做的事情:

SELECT str_to_date(CONCAT_WS(',' SUBSTR(tr_date, 1, 2 ),
                             SUBSTR(tr_date, 4, 2 ),
                             SUBSTR(tr_date, 7, 4 )
                            ), '%d,%m,%Y')
FROM transaction_details
WHERE tr_id = 3;

但实际上,字符串操作是不必要的。这是更合理的解决方案:

SELECT str_to_date(tr_date, '%d-%m-%Y')
FROM transaction_details
WHERE tr_id = 3;