Saya memiliki dua bidang tanggal di setiap baris tabel yang sama. Saya mencoba mencari cara untuk memperbarui hanya BULAN dari satu tanggal berdasarkan apakah itu lebih besar atau lebih kecil dari tanggal lainnya.

Inilah yang perlu saya jalankan: JIKA tanggal kedua LEBIH BESAR DARI tanggal pertama, maka atur BULAN tanggal pertama sama dengan BULAN tanggal kedua.

Jadi jika tanggal pertama adalah '2021-03-16' dan tanggal kedua adalah '2021-05-01', saya ingin memperbarui tanggal pertama menjadi '2021-05-16'.

Atau, untuk deskripsi yang kurang bertele-tele, bagaimana cara mengubah ini...

Himpunan data:

id date_1       date_2
 1 2021-03-16   2021-05-01
 2 2021-03-16   2021-02-01

... ke dalam ini ...

id date_1       date_2
 1 2021-05-16   2021-05-01
 2 2021-03-16   2021-02-01

Setiap saran tentang metode/sintaks yang benar untuk melakukan ini akan sangat dihargai.

-1
John Callanan 16 Maret 2021, 15:30

1 menjawab

Jawaban Terbaik
UPDATE table
SET first_date = CONCAT_WS('-', YEAR(first_date), 
                                MONTH(GREATEST(first_date, second_date)), 
                                DAY(first_date));
1
Akina 16 Maret 2021, 12:51