SUBDATE
Sintassi
SUBDATE(data,INTERVAL espr unità), SUBDATE(espr, giorni)
Spiegazione
Quando si invoca con il secondo argomento nella forma INTERVAL
, SUBDATE()
è sinonimo di DATE_SUB()
. Per informazioni sull'argomento INTERVAL
unità, si veda DATE_ADD()
.
La seconda forma permette di passare l'argomento giorni come intero. In questo caso, viene considerato come il numero di giorni da sottrarre dell'espressione espr, che è di tipo DATE o DATETIME.
Esempi
MariaDB [(none)]> SELECT DATE_SUB('2008-01-02', INTERVAL 31 DAY); +-----------------------------------------+ | DATE_SUB('2008-01-02', INTERVAL 31 DAY) | +-----------------------------------------+ | 2007-12-02 | +-----------------------------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> SELECT SUBDATE('2008-01-02', INTERVAL 31 DAY); +----------------------------------------+ | SUBDATE('2008-01-02', INTERVAL 31 DAY) | +----------------------------------------+ | 2007-12-02 | +----------------------------------------+ 1 row in set (0.00 sec) MariaDB [(none)]>
MariaDB [(none)]> SELECT SUBDATE('2008-01-02 12:00:00', 31); +------------------------------------+ | SUBDATE('2008-01-02 12:00:00', 31) | +------------------------------------+ | 2007-12-02 12:00:00 | +------------------------------------+ 1 row in set (0.00 sec) MariaDB [(none)]>
CREATE TABLE t1 (d DATETIME); INSERT INTO t1 VALUES ("2007-01-30 21:31:07"), ("1983-10-15 06:42:51"), ("2011-04-21 12:34:56"), ("2011-10-30 06:31:41"), ("2011-01-30 14:03:25"), ("2004-10-07 11:19:34");
MariaDB [test]> SELECT d, SUBDATE(d, 10) from t1; +---------------------+---------------------+ | d | SUBDATE(d, 10) | +---------------------+---------------------+ | 2007-01-30 21:31:07 | 2007-01-20 21:31:07 | | 1983-10-15 06:42:51 | 1983-10-05 06:42:51 | | 2011-04-21 12:34:56 | 2011-04-11 12:34:56 | | 2011-10-30 06:31:41 | 2011-10-20 06:31:41 | | 2011-01-30 14:03:25 | 2011-01-20 14:03:25 | | 2004-10-07 11:19:34 | 2004-09-27 11:19:34 | +---------------------+---------------------+ 6 rows in set (0.00 sec) MariaDB [test]> SELECT d, SUBDATE(d, INTERVAL 10 MINUTE) from t1; +---------------------+--------------------------------+ | d | SUBDATE(d, INTERVAL 10 MINUTE) | +---------------------+--------------------------------+ | 2007-01-30 21:31:07 | 2007-01-30 21:21:07 | | 1983-10-15 06:42:51 | 1983-10-15 06:32:51 | | 2011-04-21 12:34:56 | 2011-04-21 12:24:56 | | 2011-10-30 06:31:41 | 2011-10-30 06:21:41 | | 2011-01-30 14:03:25 | 2011-01-30 13:53:25 | | 2004-10-07 11:19:34 | 2004-10-07 11:09:34 | +---------------------+--------------------------------+ 6 rows in set (0.00 sec)
Content reproduced on this site is the property of its respective owners,
and this content is not reviewed in advance by MariaDB. The views, information and opinions
expressed by this content do not necessarily represent those of MariaDB or any other party.