如何将 2 个字符串转换为 MySQL 中的日期

How to Convert 2 Strings To Date in MySQL

我有一个 table tbl_remit.

 ________________________________________________________________
|RemitNo|ID|Employer|From_Month|From_Year|To_Month|To_Year|Amount|
|   1   |1 |    a   |   01     |   2016  |   01   |  2016 |200.00|
|   2   |1 |    a   |   02     |   2016  |   02   |  2016 |200.00|
|   3   |1 |    a   |   03     |   2016  |   03   |  2016 |200.00|
|   4   |1 |    a   |   04     |   2016  |   06   |  2016 |600.00|

这个table代表Employer(a)ID(1)From_Month(01)From_Year(2016)To_Month(01)To_Year(2016)月份的汇款总计 Amount(200.00)

雇主在 2016 年 1 月 1 日 - 2016 年 1 月 31 日期间支付了 200.00 美元。我需要创建一个视图,它将 FROM_Month 和 FROM_Year 列作为日期与 01/01/2016 的格式以及 TO_Month 和 TO_Year 列作为日期与2016 年 1 月 31 日的格式。

我用了STR_TO_DATE(Concat('From_To','/','1','/','From_Year'), '%m/%d/%Y')但是它returnsNULL

非常感谢任何意见和建议。

删除 From_ToFrom_Year 列周围的单引号:

SELECT STR_TO_DATE(CONCAT(From_Year, '/', From_Month, '/01'), '%Y/%m/%d') AS From_Date,
       STR_TO_DATE(CONCAT(To_Year,   '/', To_Month,   '/01'), '%Y/%m/%d') AS To_Date
FROM yourTable

作为一般性建议,您应该始终将日期信息存储在单个列中,使用 datetimestamp 等日期类型。

更新:

如果想得到to日期的最后一天,可以使用LAST_DAY函数:

LAST_DAY(STR_TO_DATE(CONCAT(To_Year, '/', To_Month, '/01'), '%Y/%m/%d'))