SELECT STR_TO_DATE( CONCAT( YEAR(MAX(my_date)) , '-', MONTH(MAX(my_date))+1 , '-', 01 ) , '%Y-%m-%d')
我用它来提取日期。我得到以下输出:
Output Data Entry till
2017-07-01 2017 June entry complete
2017-08-01 2017 July entry complete
但是,一旦数据输入在2017年12月完成,我将获得2018-13-01而不是2018-01-01。我知道这是因为+1我在月份值中添加。我不确定如何在12之后将其循环回01?
my_date的csv文件中的值类似于2017-01-06。它是字符串格式。
答案 0 :(得分:1)
您通过在月份中添加1来对字符串进行日期算术运算。相反,请使用SELECT date_add(STR_TO_DATE( CONCAT( YEAR(MAX(my_date)) , '-', MONTH(MAX(my_date)) , '-', 01 ) , '%Y-%m-%d'), INTERVAL 1 MONTH)
函数。
get