簡體   English   中英

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

[英]How to add some days to str_to_date mysql function?

我有一張表,其中我的字符串日期格式為01.04.2015 現在我想為該字符串日期格式列添加一些天。 為此我在下面查詢添加一些天。

SELECT DATE_ADD(level2,INTERVAL 28 DAY) level2 FROM  sales_purchase_stocks_hs WHERE stock= '123'

當我運行此查詢時,我的日期輸出錯誤。 輸出是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'.

但是當我運行查詢時,我得到的結果是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)

現在在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)

您現在可以在查詢中使用上述內容。

SELECT DATE_ADD(`your_field_name`, INTERVAL 28 DAY)....

比如我在這里加10天,

mysql> select date_start from date_of_join where id = 23 ;
+------------+
| date_start |
+------------+
| 2012-02-03 |
+------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_ADD(`date_start`, INTERVAL 10 DAY) from date_of_join where id = 23 ;
+-----------------------------------------+
| DATE_ADD(`date_start`, INTERVAL 10 DAY) |
+-----------------------------------------+
| 2012-02-13                              |
+-----------------------------------------+
1 row in set (0.00 sec)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM