diff --git a/sql/migration.sql b/sql/migration.sql
index a3f274ce369a0efc0bb916f13faa4e90f0e5e588..fe8f2a621c2b19f07a40eb9448bd4ae8df4a960d 100644
--- a/sql/migration.sql
+++ b/sql/migration.sql
@@ -244,6 +244,30 @@ END;
 $BODY$
 language plpgsql;
 
+--
+-- AgroMetInfo_2.0#107 : winter start
+--
+CREATE OR REPLACE FUNCTION upgrade20250224() RETURNS boolean AS $BODY$
+BEGIN
+    UPDATE period SET firstday='XXXX-10-01' WHERE code='winter';
+    CREATE TEMPORARY TABLE IF NOT EXISTS tmp_translation (
+        key VARCHAR,
+        locale VARCHAR,
+        translation VARCHAR
+    );
+    INSERT INTO tmp_translation (key, locale, translation) VALUES
+    ('winter', 'en', 'Winter crop (01/10 − 31/8)'),
+    ('winter', 'fr', 'Culture d’hiver (01/10 − 31/8)');
+
+	UPDATE i18n
+    	SET translation=t.translation
+    	FROM i18nkey AS k, locale AS l, tmp_translation AS t
+    	WHERE i18n.i18nkey=k.id AND i18n.locale=l.id AND l.languagetag=t.locale AND k.string=t.key;
+    RETURN true;
+END;
+$BODY$
+language plpgsql;
+
 ---
 --
 -- Keep this call at the end to apply migration functions.
diff --git a/sql/periods.csv b/sql/periods.csv
index 099bcccacdbb8af9f3722ad1928dddb43c8019d2..45f0876763d067c91076f7b1535784d10e7e5589 100644
--- a/sql/periods.csv
+++ b/sql/periods.csv
@@ -1,4 +1,4 @@
 code,phase,firstday,lastday
 year,s2s8,YYYY-01-01,YYYY-12-31
 summer,s4s7,YYYY-04-01,YYYY-10-15
-winter,s1s6,XXXX-10-31,YYYY-08-31
\ No newline at end of file
+winter,s1s6,XXXX-10-01,YYYY-08-31