如何在 str_to_date mysql 函数中添加一些天数?

use*_*779 3 php mysql date

我有一个表格,其中有一个字符串日期,格式为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了结果。任何人都可以帮助我哪里做错了吗?

Abh*_*rty 5

你做错了。您需要首先使用将字符串日期转换为实际日期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)

您现在可以在查询中使用上述内容。