date_add() : 可以为指定日期增加/减少任意一段时间间隔。下面举例将当前日期增加一个月和减少一个月
mysql> select date_add(current_date(), interval 1 month) asadd_one_month;+---------------+
| add_one_month |
+---------------+
| 2016-12-30 |
+---------------+
1 row in set (0.00sec)
mysql> select date_add(current_date(), interval -1 month) asreduce_one_month;+------------------+
| reduce_one_month |
+------------------+
| 2016-10-30 |
+------------------+
1 row in set (0.00 sec)
格式:date_add(‘要修改的时间‘,interval 数量 时间间隔类型), 下面展示一些常见的时间间隔类型
间隔名称
描述
Second
秒数
Minute
分钟数
Hour
小时数
Day
天数
Month
月份
Year
年份
Minute_second
分钟和秒,以":"分隔
Hour_second
小时、分钟和秒,以":"分隔
Year_month
年份和月份,以"-"分隔
下面对时间间隔后三种举例:
①、将当前时间增加3小时20分钟
mysql> select current_timestamp; -- 当前时间+---------------------+
| current_timestamp |
+---------------------+
| 2016-11-30 15:22:46 |
+---------------------+
1 row in set (0.00sec)
mysql> select date_add(current_timestamp, interval ‘3:20:00‘ Hour_second) asadd_HourSecond;+---------------------+
| add_HourSecond |
+---------------------+
| 2016-11-30 18:42:49 |
+---------------------+
1 row in set (0.00 sec)
②、将日期‘2000-01-01‘增加16年10个月
mysql> select date_add(‘2000-01-01‘, interval ‘16-10‘ Year_month) asadd_Year_month;+----------------+
| add_Year_month |
+----------------+
| 2016-11-01 |
+----------------+
1 row in set (0.00 sec)
函数last_day() : 返回所求月份的最后一天
举例:求"2016-01-01"该月的最后一天
mysql> select last_day(‘2016-01-01‘);+------------------------+
| last_day(‘2016-01-01‘) |
+------------------------+
| 2016-01-31 |
+------------------------+
1 row in set (0.00 sec)
无论提供的参数是date型还是datetime型,last_day()函数都将返回一个date值
2、返回字符串的时间函数
dayname() :返回所求的日期是星期几
举例:求当前日期是星期几
mysql> select dayname(current_date);+-----------------------+
| dayname(current_date) |
+-----------------------+
| Wednesday |
+-----------------------+
1 row in set (0.00 sec)
year()、month()、day()、time()...提取部分时间
mysql> select year(current_date),month(current_date),day(current_date),time(current_timestamp);+--------------------+---------------------+-------------------+-------------------------+
| year(current_date) | month(current_date) | day(current_date) | time(current_timestamp) |
+--------------------+---------------------+-------------------+-------------------------+
| 2016 | 11 | 30 | 16:12:57 |
+--------------------+---------------------+-------------------+-------------------------+
1 row in set (0.00 sec)
3、返回数字的时间函数
datediff() : 计算两个日期相隔的天数
举例:计算"2000-01-01"距离现在有多少天
mysql> select datediff(‘2016-11-30‘, ‘2000-01-01‘);+--------------------------------------+
| datediff(‘2016-11-30‘, ‘2000-01-01‘) |
+--------------------------------------+
| 6178 |
+--------------------------------------+
1 row in set (0.00 sec)
注:datediff()函数会忽略参数中的时钟值。
sql server 同样具备datediff()函数,但可以在指定时间间隔的类型(如年、月、日、小时等)。sql server 实现上一个例子的方法:
select datediff(day, ‘2016-11-30‘, ‘2000-01-01‘);
MySQL学习记录--操作时间数据
标签:blog log 定时 ext timestamp last 计算 strong nes
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:http://www.cnblogs.com/technologylife/p/6118352.html