Mam kilka dat w formacie YYYY-MM-DDMYSQL - Zmiana rok dat od 2020 do 2011
Ale mam cały rok w 2020-MM-DD
chcę go zmienić na 2011-MM-DD
Jak mogę to osiągnąć?
Mam kilka dat w formacie YYYY-MM-DDMYSQL - Zmiana rok dat od 2020 do 2011
Ale mam cały rok w 2020-MM-DD
chcę go zmienić na 2011-MM-DD
Jak mogę to osiągnąć?
UPDATE YourTable
SET YourDateColumn = SUBDATE(YourDateColumn, INTERVAL 9 YEAR);
Dziękuję bardzo za odpowiedź. Właśnie wypróbowałem to i to faktycznie dodało 1 do roku tj. To zrobiło moją datę od 2020 do 2021. Czy ich żadna funkcja by zmniejszyć przedział? – Chinmay
Niestety błędnie wpisano moje pytanie. Właściwie to moje daty mają format 2020-MM-DD i chcę go przekonwertować na rok 2010-MM-DD. Bardzo przepraszam – Chinmay
@ChinmayMurugkar Aby przejść od 2020 do 2011, użyj 'SUBDATE (YourDateColumn, INTERVAL 9 YEAR)' Redagowałem odpowiedź, aby to odzwierciedlić. –
USE ADDDATE(old_date, INTERVAL -9 YEAR)
Dzięki za odpowiedź. Niestety błędnie wpisano moje pytanie. Właściwie to moje daty mają format 2020-MM-DD i chcę go przekonwertować na rok 2010-MM-DD. Tak mi przykro, – Chinmay
Edytowałem swoją odpowiedź, aby to odzwierciedlić. Odpowiedź jest nieco inna niż @Joe Stefanelli, ale działa w ten sam sposób. – Jason
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YourDateColumn >= '2010-01-01'
AND YourDateColumn <= '2010-12-31';
Jeśli tabela w dół nie ma indeks na polu daty, można uciec z tego:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YEAR(YourDateColumn) = 2010;
Aby ustalić datę problem z 2020 roku przejście do roku 2021:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL -1 YEAR)
WHERE YEAR(YourDateColumn) = 2021;
BTW Odkąd skopiowałem oryginalny kod Joe Stefanelli, +1 dla niego !!!
Chciałbym dodać (dla kolejnych gości na pytanie), które można także „update” pozytywnie szybciej niż z rachunku z funkcją SUBDATE
, myślę, że jest dość szybciej, a do wziął go ok. 1 godzina na wpłynięcie 2,3 trylionów wierszy SUBDATE
zrobiła to przez połowę czasu.
UPDATE Table SET DateTimeField = SUBDATE(DateTimeField, INTERVAL -x YEAR);
Gdzie x to liczba ujemna, którą chcesz dodać jako wartość nowego roku. Szczerze mówiąc, ignoruję, dlaczego tak się dzieje, ale działa.
Jaki jest typ danych kolumny? –
Typ danych kolumny to data – Chinmay
[This] (http://stackoverflow.com/questions/14491906/change-year-in-mysql-date) jedno jest prostsze rozwiązanie –