date_sub函數(shù)與add_months函數(shù)的區(qū)別

小樊
81
2024-09-15 04:49:11
欄目: 編程語言

DATE_SUBADD_MONTHS 是兩個(gè)用于處理日期的函數(shù),但它們之間有一些關(guān)鍵區(qū)別

  1. 功能
  • DATE_SUB:這個(gè)函數(shù)用于從給定的日期中減去指定的時(shí)間單位(如天、月或年)。它常用于計(jì)算某個(gè)日期之前的日期。
  • ADD_MONTHS:這個(gè)函數(shù)用于將指定的月份數(shù)添加到給定的日期。它常用于計(jì)算某個(gè)日期之后的日期。
  1. 語法
  • DATE_SUBDATE_SUB(date, INTERVAL expr unit),其中 date 是要操作的日期,expr 是要減去的時(shí)間單位數(shù)量,unit 是時(shí)間單位(如 DAY、MONTH 或 YEAR)。
  • ADD_MONTHSADD_MONTHS(date, num_months),其中 date 是要操作的日期,num_months 是要添加的月份數(shù)。
  1. 示例

假設(shè)我們有以下日期:2021-08-31

  • 使用 DATE_SUB 函數(shù)減去 3 個(gè)月:
SELECT DATE_SUB('2021-08-31', INTERVAL 3 MONTH);

結(jié)果:2021-05-31

  • 使用 ADD_MONTHS 函數(shù)添加 3 個(gè)月:
SELECT ADD_MONTHS('2021-08-31', 3);

結(jié)果:2021-11-30

注意,在 ADD_MONTHS 函數(shù)中,當(dāng)給定的日期是月份的最后一天時(shí),結(jié)果也是新月份的最后一天。而在 DATE_SUB 函數(shù)中,結(jié)果保持在同一天,除非該天不存在于目標(biāo)月份,否則會(huì)返回目標(biāo)月份的最后一天。

總之,DATE_SUBADD_MONTHS 函數(shù)的主要區(qū)別在于它們分別用于減去和添加月份,并且在處理不同月份的最后一天時(shí)可能會(huì)有所不同。

0