Rumah > Soal Jawab > teks badan
Saya mempunyai pangkalan data MySQL dengan lajur besar yang dipanggil years_valid_for dan lajur datetime(6) dipanggil completion_date. Saya perlu menolak tahun daripada lajur besar.
Sebagai contoh, tahun_sah_untuk ialah 4 dan tarikh_siapnya ialah 2023-06-07. Saya perlu menolak 4 tahun dari 2023-06-07 untuk mendapatkan 2019-06-07.
Adakah boleh? Jika boleh, bagaimana?
Saya mencuba fungsi DATE_SUB tetapi tidak dapat mencapai hasil yang diharapkan kerana ralat sintaks.
P粉1704382852023-09-14 11:23:26
Sintaks:- DATE_SUB(tarikh, selang nilai INTERVAL)
SELECT DATE_SUB(completion_date, INTERVAL years_valid_for YEAR) AS res_date FROM your_table_name
P粉7262346482023-09-14 00:26:16
Anda boleh melakukannya seperti berikut:
SELECT *, completion_date - INTERVAL years_valid_for YEAR FROM mytable