如何将 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_To
和 From_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
作为一般性建议,您应该始终将日期信息存储在单个列中,使用 date
或 timestamp
等日期类型。
更新:
如果想得到to
日期的最后一天,可以使用LAST_DAY
函数:
LAST_DAY(STR_TO_DATE(CONCAT(To_Year, '/', To_Month, '/01'), '%Y/%m/%d'))
我有一个 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_To
和 From_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
作为一般性建议,您应该始终将日期信息存储在单个列中,使用 date
或 timestamp
等日期类型。
更新:
如果想得到to
日期的最后一天,可以使用LAST_DAY
函数:
LAST_DAY(STR_TO_DATE(CONCAT(To_Year, '/', To_Month, '/01'), '%Y/%m/%d'))