龙空技术网

MySQL基础之日期函数

程序学习笔记 200

前言:

而今小伙伴们对“mysql获取时间戳的年月日”都比较关怀,我们都需要学习一些“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日 |+----------------+

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

标签: #mysql获取时间戳的年月日