我有一个表格,其中有一个字符串日期,格式为01.04.2015. 现在我想在该字符串日期格式列中添加一些天数。为此,我在下面的查询中添加了几天。
SELECT DATE_ADD(level2,INTERVAL 28 DAY) level2 FROM sales_purchase_stocks_hs WHERE stock= '123'
Run Code Online (Sandbox Code Playgroud)
当我运行这个查询时,我得到了错误的日期输出。输出是2001-05-18 15:00:00。但我的原始日期字符串是01.04.2015(2015 年 4 月 1 日)。
我尝试使用以下查询
SELECT STR_TO_DATE(DATE_ADD(level2,INTERVAL 28 DAY),'%d.%m.%Y') level2 FROM sales_purchase_stocks_hs WHERE stock = '123'.
Run Code Online (Sandbox Code Playgroud)
但是当我运行查询时,我得到null了结果。任何人都可以帮助我哪里做错了吗?
你做错了。您需要首先使用将字符串日期转换为实际日期str_to_date,然后对其进行应用date_add()。
这里是如何str_to_date工作的
mysql> select str_to_date('01.04.2015','%d.%m.%Y') as date;
+------------+
| date |
+------------+
| 2015-04-01 |
+------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
现在在里面使用上面的,date_add()所以你有
mysql> select date_add(str_to_date('01.04.2015','%d.%m.%Y'),interval 28 day) as date;
+------------+
| date |
+------------+
| 2015-04-29 |
+------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
您现在可以在查询中使用上述内容。