当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL SUBDATE方法用法及代码示例


MySQL 的 SUBDATE(~) 方法从日期或日期时间值中减去指定的间隔。

用法

SELECT SUBDATE(date, INTERVAL expr unit);
SELECT SUBDATE(date, days);

参数

1. date | date/datetime

要从中减去时间间隔的日期或日期时间。

2. days | integer

从提供的 date 中减去的天数。

3. expr unit | integer with units

从提供的 date 中减去的间隔及其单位。

请参阅页面底部的“单位列表”,了解有效的单位列表。

警告

必须指定daysexpr unit 参数,它们不能一起使用。

返回值

date 减去指定间隔的结果。

例子

考虑以下有关某些学生的信息:

student_id

名称

名字

day_enrolled

年龄

用户名

1

Sky

Towner

2015-12-03

17

stowner1

2

Ben

Davis

2016-04-20

19

bdavis2

3

Travis

Apple

2018-08-14

18

tapple3

4

Arthur

David

2016-04-01

16

adavid4

5

Benjamin

Town

2014-01-01

17

btown5

可以使用此处的代码创建上述示例表。

基本用法

从学生注册日期减去 2 天:

SELECT fname, day_enrolled, SUBDATE(day_enrolled, 2)
FROM students;



+----------+--------------+--------------------------+
| fname    | day_enrolled | SUBDATE(day_enrolled, 2) |
+----------+--------------+--------------------------+
| Sky      | 2015-12-03   | 2015-12-01               |
| Ben      | 2016-04-20   | 2016-04-18               |
| Travis   | 2018-08-14   | 2018-08-12               |
| Arthur   | 2016-04-01   | 2016-03-30               |
| Benjamin | 2014-01-01   | 2013-12-30               |
+----------+--------------+--------------------------+

从学生入学日期减去 2 个月:

SELECT fname, day_enrolled, SUBDATE(day_enrolled, INTERVAL 2 MONTH)
FROM students;



+----------+--------------+-----------------------------------------+
| fname    | day_enrolled | SUBDATE(day_enrolled, INTERVAL 2 MONTH) |
+----------+--------------+-----------------------------------------+
| Sky      | 2015-12-03   | 2015-10-03                              |
| Ben      | 2016-04-20   | 2016-02-20                              |
| Travis   | 2018-08-14   | 2018-06-14                              |
| Arthur   | 2016-04-01   | 2016-02-01                              |
| Benjamin | 2014-01-01   | 2013-11-01                              |
+----------+--------------+-----------------------------------------+

负间隔

要将日期添加 1 天:

SELECT SUBDATE('2020-01-01', -1);



+---------------------------+
| SUBDATE('2020-01-01', -1) |
+---------------------------+
| 2020-01-02                |
+---------------------------+

请注意,有一个单独的方法 ADDDATE(~) 专门用于向日期/日期时间添加间隔。

单位名单

下表列出了支持的单位:

单元

预期的输入格式

MICROSECOND

MICROSECONDS

SECOND

SECONDS

MINUTE

MINUTES

HOUR

HOURS

DAY

DAYS

WEEK

WEEKS

MONTH

MONTHS

QUARTER

QUARTERS

YEAR

YEARS

SECOND_MICROSECOND

'SECONDS.MICROSECONDS'

MINUTE_MICROSECOND

'MINUTES:SECONDS.MICROSECONDS'

MINUTE_SECOND

'MINUTES:SECONDS'

HOUR_MICROSECOND

'HOURS:MINUTES:SECONDS.MICROSECONDS'

HOUR_SECOND

'HOURS:MINUTES:SECONDS'

HOUR_MINUTE

'HOURS:MINUTES'

DAY_MICROSECOND

'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'

DAY_SECOND

'DAYS HOURS:MINUTES:SECONDS'

DAY_MINUTE

'DAYS HOURS:MINUTES'

DAY_HOUR

'DAYS HOURS'

YEAR_MONTH

'YEARS-MONTHS'

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | SUBDATE method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。