我在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。请帮我解决这个问题。
答案 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;