SQL查询将Jan Month视为13而不是01

时间:2017-12-19 06:13:35

标签: mysql

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。它是字符串格式。

1 个答案:

答案 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