四时宝库

程序员的知识宝库

MySQL基础之日期函数(mysql 日期格式)

日期函数意味着函数的参数要是有效的日期值,或者调用函数返回日期。

1、now函数

now用于返回当前系统日期+时间。

NOW()

实例:

mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2019-06-27 22:41:27 |
+---------------------+

2、curdate函数

curdate返回当前系统日期,不包含时间。

CURDATE()

实例:

mysql> select CURDATE();
+------------+
| CURDATE() |
+------------+
| 2019-06-27 |
+------------+

3、curtime函数

curtime返回当前系统时间,不包含日期。

CURTIME()

实例:

mysql> select CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 22:45:17 |
+-----------+

4、可以获取指定的部分,即指定取年、月、日、时、分、秒

获取年、月、日的函数分别如下,参数须是完整有效的日期格式。

YEAR(date) 获取年
MONTH(date) 获取月
DAY(date) 获取日

实例:

#有效的:
mysql> select YEAR('1998-01-01') as year,
 MONTH('1998-01-01') as month,
 DAY('1998-01-01') as day;
+------+-------+------+
| year | month | day |
+------+-------+------+
| 1998 | 1 | 1 |
+------+-------+------+
#无效的:
mysql> select YEAR('1998-01') as year,
 MONTH('01-01') as month,
 DAY('1998-01') as day;
+------+-------+------+
| year | month | day |
+------+-------+------+
| NULL | NULL | NULL |
+------+-------+------+

获取时、分、秒函数分别如下,参数须包含完整合法的时间格式。

HOUR(time) 时
MINUTE(time) 分
SECOND(time) 秒

实例:

#有效的:
mysql> select HOUR('1998-01-01 23:34:34') as hour,
 MINUTE('23:34:34') as minute,
 SECOND('23:34:34') as second;
+------+--------+--------+
| hour | minute | second |
+------+--------+--------+
| 23 | 34 | 34 |
+------+--------+--------+
#无效的:
mysql> select HOUR('1998-01-01') as hour,
 MINUTE('35:34') as minute,
 SECOND('23-34-34') as second;
+------+--------+--------+
| hour | minute | second |
+------+--------+--------+
| NULL | 34 | 23 |
+------+--------+--------+

5、str_to_date函数

从名字可以看出,此函数是将日期格式的字符转换成日期。

STR_TO_DATE(str,format)

str参数是有效的日期格式的字符,format参数使用格式符对str解析。format参数很重要,因为它告诉sql解析器如何去解析str参数,哪部分代表年份,哪部分代表月份等。

format的格式类似:%Y-%m-%d。以下是格式符及其涵义:

 %Y 年,四位
 %y 年,2位
 %m 月,数值(00-12)
 %c 月,(1,2...11,12)
 %d 月的天,数值(00-31)
 %H 小时(24小时制)
 %h 小时 (12小时制)
 %i 分钟,数值(00-59)
 %s 秒(00-59)

实例:

mysql> select STR_TO_DATE('1999-03-09','%Y-%m-%d') as date;
+------------+
| date |
+------------+
| 1999-03-09 |
+------------+
#如果用户输入的日期值,有可能出现月份在前,年份在后的情况,
#如:9-13-1999,此时若要返回正常日期进行查询,我们就要进行转换:
mysql> select STR_TO_DATE('9-13-1999','%m-%d-%Y') as date;
+------------+
| date |
+------------+
| 1999-09-13 |
+------------+

format参数格式符之间的分隔字符需要与str参数各部分保持一致,否则返回null。

实例:

mysql> select STR_TO_DATE('1999-03 09','%Y-%m-%d') as date1;
+-------+
| date1 |
+-------+
| NULL |
+-------+
mysql> select STR_TO_DATE('9月13日1999年','%m月%d日%Y年') 
 as date;
+------------+
| date |
+------------+
| 1999-09-13 |
+------------+


6、date_format函数

date_format函数作用与str_to_date函数相反,它是将日期转换成指定格式的字符。

DATE_FORMAT(date,format)

date参数是有效日期值,format参数中格式符与str_to_date的涵义一样,不过此时的format格式由你指定。

实例:

mysql> SELECT DATE_FORMAT(now(),'%Y年%m月%d日') as '日期';
+----------------+
| 日期 |
+----------------+
| 2019年06月27日 |
+----------------+

本文只是整理了几个常见的日期函数,有不对或不足的地方请大家指出,一起讨论学习,一起进步。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接