2017-06-04 89 views
0

我從舊的數據庫遷移數據到新的數據庫,其中日被作爲varchar,我已經成功地遷移數據,但在日期問題。在舊的數據庫日期的格式爲25-01-02,其中2501日是月和02是一年。但我的腳本將其轉換爲2025-01-02。我怎樣才能解決它在我的SQL?日期從YYYY-MM-DD轉換爲YYY-MM-DD轉換一年

TEST case: 
DATE     OUTPUT 
2025-05-01   2001-05-25 
2002-08-16   2016-08-02 
2031-01-01   2001-01-31 
2028-08-16   2016-08-28 
2001-05-01   2001-05-01 
+0

你需要使用[DATE_FORMAT ](H T tps://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format) –

+0

我已經試過了,你可以修改它! SELECT f_date, CAST(DATE_FORMAT(f_date,'%y-%m-%d')AS CHAR), DATE_FORMAT(CAST(DATE_FORMAT(f_date,'%y-%m-%d')AS CHAR) ,「%Y-%間%d」) FROM表 – mks

回答

1

你可以很容易與STR_TO_DATE轉換是這樣的:

SELECT STR_TO_DATE('25-01-02', '%d-%m-%y'); 

樣品

mysql> SELECT STR_TO_DATE('25-01-02', '%d-%m-%y'); 
+-------------------------------------+ 
| STR_TO_DATE('25-01-02', '%d-%m-%y') | 
+-------------------------------------+ 
| 2002-01-25       | 
+-------------------------------------+ 
1 row in set (0,00 sec) 

mysql> 

參見手冊:https://mariadb.com/kb/en/mariadb/str_to_date/

+0

@馬丁 - 我有添加鏈接,但你可以通過谷歌以2個字進行搜索:** MySQL的STR-TO_DATE **找到任何 –

+0

是谷歌是總是一個答案,但是當OP閱讀答案並希望更多地瞭解指定/推薦的功能時,最好在答案中有鏈接,否則如果OP使用Google並獲得其他可能不符合您要求的內容。 – Martin

+0

我建議鏈接到的MySQL手冊爲['雖然MariaDB的應該是與MySQL兼容,爲一個原因或其他有相當多的兼容性問題和不同features'(HTTPS://softwareengineering.stackexchange .COM /問題/ 120178 /什麼最差之間,MariaDB的和MySQL的) – Martin