MySQL 日期函数详解(一)

1. 查询函数

1.1. dayofyear(date)
1.2. dayofweek(date)
1.3. dayofmonth(date)
1.4. year(date)
1.5. month(date)
1.6. hour(time)
1.7. minute(time)
1.8. second(time)
1.9. now()
1.10. curdate()
1.11. curtime()
1.12. utc_timestamp()
1.13. last_day()

2. 计算函数

2.1. date_add(date,interval expr type)
2.2. date_sub(date,interval expr type)
2.3. datediff(date1,date2)
2.4. timediff(time1,time2)

3. 格式化函数

3.1. date_format(date,format)

1. 查询函数

1.1. dayofyear(date);

含义:查询date在当年是第多少天

示例:

select dayofyear(now());
+——————+
| dayofyear(now()) |
+——————+
| 358 |
+——————+

1.2. dayofweek(date);

含义:查询某天是一周中的第几天,返回值在1-7之间,1表示星期天,7表示星期一。

示例:

mysql> select dayofweek(‘2015-12-20’),dayofweek(‘2015-12-19
‘);
+————————-+————————-+
| dayofweek(‘2015-12-20’) | dayofweek(‘2015-12-19’) |
+————————-+————————-+
| 1 | 7 |
+————————-+————————-+

1.3. dayofmonth(date);

含义:查询某天是当月的第几天,范围在1-31之间

示例:

mysql> select dayofmonth(‘2015-12-01’),dayofmonth(‘2015-12-31’);
+————————–+————————–+
| dayofmonth(‘2015-12-01’) | dayofmonth(‘2015-12-31’) |
+————————–+————————–+
| 1 | 31 |
+————————–+————————–+

1.4. year(date);

含义:返回日期的年份,4位数字,yyyy格式。

示例:

mysql> select year(now());
+————-+
| year(now()) |
+————-+
| 2015 |
+————-+

1.5. month(date);

含义:返回日期的月份值,2位数字,dd格式。

示例:

mysql> select month(now());
+————–+
| month(now()) |
+————–+
| 12 |
+————–+

1.6. hour(time);

含义:返回时间的小时数(24小时制,hh格式),参数可以是datetime或time格式。

示例:

mysql> select hour(‘2012-12-01 19:00:00’),hour(‘12:00:09’);
+—————————–+——————+
| hour(‘2012-12-01 19:00:00’) | hour(‘12:00:09’) |
+—————————–+——————+
| 19 | 12 |
+—————————–+——————+

1.7. minute(time);

含义:返回时间的分钟数(0-59),参数可以是datetime或time格式。

示例:

mysql> select minute(‘2015-12-23 19:34:00’);
+——————————-+
| minute(‘2015-12-23 19:34:00’) |
+——————————-+
| 34 |
+——————————-+

1.8. second(time);

含义:返回时间的秒数(0-59),参数可以是datetime或time格式。

示例:

mysql> select second(‘2015-12-24 13:31:12’);
+——————————-+
| second(‘2015-12-24 13:31:12’) |
+——————————-+
| 12 |
+——————————-+

1.9. now()

含义:返回当前时间(本地时间 yyyy-MM-dd HH:mm:ss 格式)

示例:

mysql> select now();
+———————+
| now() |
+———————+
| 2015-12-24 13:35:05 |
+———————+

1.10. curdate()

含义:返回当前日期(本地时间 yyyy-MM-dd 格式)

示例:

mysql> select curdate();
+————+
| curdate() |
+————+
| 2015-12-24 |
+————+

1.11. curtime()

含义:返回当前时间(本地时间 HH:mm:ss 格式)

示例:

mysql> select curtime();
+———–+
| curtime() |
+———–+
| 13:37:14 |
+———–+

1.12. utc_timestamp()

含义:返回UTC时间(格式: yyyy-MM-dd HH:mm:ss 格式)
中国位于东8区,所以北京时间=UTC时间+8小时。

示例:

mysql> select utc_timestamp(),now();
+———————+———————+
| utc_timestamp() | now() |
+———————+———————+
| 2015-12-24 05:41:14 | 2015-12-24 13:41:14 |
+———————+———————+

1.13. last_day(date)

含义:返回传入日期所属月份的最后一天,返回格式 yyyy-MM-dd

示例:

mysql> select last_day(‘2015-2-12’);
+———————–+
| last_day(‘2015-2-12’) |
+———————–+
| 2015-02-28 |
+———————–+

2. 计算函数

2.1. date_add(date,interval expr type)

含义:在指定日期上添加一个时间间隔,时间间隔可为 天(day)、月(month)、年(year)、小时(hour)、时间点(hour_second)。

示例1: 查询当前时间2天后的时间

mysql> select now(),date_add(now(),interval 2 day);
+———————+——————————–+
| now() | date_add(now(),interval 2 day) |
+———————+——————————–+
| 2015-12-24 14:06:47 | 2015-12-26 14:06:47 |
+———————+——————————–+

示例2: 查询当前时间1小时30分后的时间,hour_second即从小时到秒的时间段

mysql> select now(),date_add(now(),interval ‘1:30:00’ hour_second);
+———————+———————————————–+
| now() | date_add(now(),interval’1:30:00’ hour_second) |
+———————+———————————————–+
| 2015-12-24 14:11:38 | 2015-12-24 15:41:38 |
+———————+———————————————–+

示例3: 对于天(day)、月(month)、年(year)、小时(hour),若expr为小数,则四舍五入,即它们的有效值为整数。

mysql> select now(),date_add(now(),interval 1.3 hour),date_add(now(),interval 1.5 hour);
+———————+———————————–+———————————–+
| now() | date_add(now(),interval 1.3 hour) | date_add(now(),interval 1.5 hour) |
+———————+———————————–+———————————–+
| 2015-12-24 14:44:40 | 2015-12-24 15:44:40 | 2015-12-24 16:44:40 |
+———————+———————————–+———————————–+

2.2. date_sub(date,interval expr type)

含义:在指定日期上减去一个时间间隔,时间间隔可为 天(day)、月(month)、年(year)、小时(hour)、时间点(hour_second)。用法与date_add()类似。

2.3. datediff(date1,date2)

含义:两个日期相加减,返回 date1-date2的差值天数。

示例1:结果为正值

mysql> select datediff(‘2015-12-23’,’2015-12-1’);
+————————————+
| datediff(‘2015-12-23’,’2015-12-1’) |
+————————————+
| 22 |
+————————————+

示例2:结果为负值

mysql> select datediff(‘2015-10-23’,’2015-12-31’);
+————————————-+
| datediff(‘2015-10-23’,’2015-12-31’) |
+————————————-+
| -69 |
+————————————-+

2.4. timediff(time1,time2)

注意:time1,time2 两个参数类型必须相同。否则将返回null
含义:两个时间相加减,返回 time1-time2的差值时间,返回格式HH:mm:ss。
示例:

mysql> select timediff(‘16:12:45’,’12:23:12’);
+———————————+
| timediff(‘16:12:45’,’12:23:12’) |
+———————————+
| 03:49:33 |
+———————————+

mysql> select timediff(‘16:12:45’,’20
:23:12’);
+———————————+
| timediff(‘16:12:45’,’20:23:12’) |
+———————————+
| -04:10:27 |
+———————————+

mysql> select timediff(now(),’20:23:12’);
+—————————-+
| timediff(now(),’20:23:12’) |
+—————————-+
| NULL |
+—————————-+

3. 格式化函数


3.1. date_format(date,format)

含义:根据format格式化日期
* %Y 年份: (yyyy)
* %d 天数:(0-31)
* %m 月份 (1-12)
* %H 小时(00-23)
* %T 时间(HH:mm:ss格式)
* %s 秒数 (00-59)

示例:

mysql> select now(),date_format(now(),’%Y年%m月%d日 %T’);
+———————+————————————–+
| now() | date_format(now(),’%Y年%m月%d日 %T’) |
+———————+————————————–+
| 2015-12-24 15:15:04 | 2015年12月24日 15:15:04 |
+———————+————————————–+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值