您现在的位置是:网站首页> 编程资料编程资料

mysql函数日期和时间函数汇总_Mysql_

2023-05-26 404人已围观

简介 mysql函数日期和时间函数汇总_Mysql_

前言

日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用date类型的参数外,也可以使用datetime或者timestamp类型的参数,但会忽略这些值的时间部分。

获取当前日期的函数

curdate()current_date()函数的作用相同,将当前日期按照yyyy-mm-ddyyyymmdd格式的值返回。

mysql> select curdate(), current_date(), curdate() + 0; +------------+----------------+---------------+ | curdate() | current_date() | curdate() + 0 | +------------+----------------+---------------+ | 2022-07-12 | 2022-07-12 | 20220712 | +------------+----------------+---------------+ 1 row in set (0.00 sec) mysql>

从上面看到,两个函数的作用是相同的,都返回了相同的系统当前日期。

curdate()+0将当前日期转换为数值型。

获取当前时间的函数

curtime()current_time()函数的作用相同,将当前时间以hh:mm:ss或者hhmmss的格式返回。

mysql> select curtime(), current_time(), curtime()+0; +-----------+----------------+-------------+ | curtime() | current_time() | curtime()+0 | +-----------+----------------+-------------+ | 21:32:25 | 21:32:25 | 213225 | +-----------+----------------+-------------+ 1 row in set (0.00 sec) mysql>

从上面看到,两个函数的作用是相同的,都反悔了相同的系统当前时间。

获取当前日期和时间的函数

current_timestamp()localtime()now()sysdate()这4个函数的作用相同,均为返回当前日期和时间的值。

mysql> select current_timestamp(), localtime(), now(), sysdate(); +---------------------+---------------------+---------------------+---------------------+ | current_timestamp() | localtime() | now() | sysdate() | +---------------------+---------------------+---------------------+---------------------+ | 2022-07-12 21:34:52 | 2022-07-12 21:34:52 | 2022-07-12 21:34:52 | 2022-07-12 21:34:52 | +---------------------+---------------------+---------------------+---------------------+ 1 row in set (0.00 sec) mysql>

从上面看到,4个函数返回的结果是一样的。

UNIX时间戳函数

UNIX_TIMESTAMP(date)若无参数调用,则返回一个UNIX时间戳(‘1970-01-01 00:00:00’GMT之后的秒数)作为无符号整数。

其中,GMT(Green wich mean time)为格林尼治标准时间。若用date来调用UNIX_TIMESTAMP(),它会将参数值以1970-01-0100:00:00GMT后的秒数的形式返回。

date可以是一个DATE字符串、DATETIME字符串、TIMESTAMP或一个当地时间的YYMMDDYYYYMMDD格式的数字。

mysql> select unix_timestamp(), unix_timestamp(now()), now(); +------------------+-----------------------+---------------------+ | unix_timestamp() | unix_timestamp(now()) | now() | +------------------+-----------------------+---------------------+ | 1657633074 | 1657633074 | 2022-07-12 21:37:54 | +------------------+-----------------------+---------------------+ 1 row in set (0.00 sec) mysql>

from_unixtime(date)函数把unix时间戳转换为普通格式时间,与unix_timestamp(date)函数互为反函数。示例:

mysql> select from_unixtime('1657633074'); +-----------------------------+ | from_unixtime('1657633074') | +-----------------------------+ | 2022-07-12 21:37:54.000000 | +-----------------------------+ 1 row in set (0.00 sec) mysql>

返回UTC日期的函数

utc_date()函数返回当前utc(世界标准时间)日期值,其格式为yyyy-mm-dd或者yyyymmdd

mysql> select utc_date(), utc_date()+0; +------------+--------------+ | utc_date() | utc_date()+0 | +------------+--------------+ | 2022-07-12 | 20220712 | +------------+--------------+ 1 row in set (0.00 sec) mysql>

返回UTC时间的函数

utc_time()返回当前utc时间值,格式为hh:mm:ss或者hhmmss

mysql> select utc_time(), utc_time()+0; +------------+--------------+ | utc_time() | utc_time()+0 | +------------+--------------+ | 13:43:24 | 134324 | +------------+--------------+ 1 row in set (0.00 sec) mysql>

获取月份的函数MONTH(date)和MONTHNAME(date)

month(date)函数返回date对应的月份。

mysql> select month('2022-12-12') as coll, month('20221212') as coll_1, month('221212') as coll_2; +------+--------+--------+ | coll | coll_1 | coll_2 | +------+--------+--------+ | 12 | 12 | 12 | +------+--------+--------+ 1 row in set (0.00 sec) mysql>

monthname(date)函数返回日期date对应月份的英文全名;

mysql> select monthname('2022-12-12'), monthname('20221212'), monthname('221212'); +-------------------------+-----------------------+---------------------+ | monthname('2022-12-12') | monthname('20221212') | monthname('221212') | +-------------------------+-----------------------+---------------------+ | December | December | December | +-------------------------+-----------------------+---------------------+ 1 row in set (0.00 sec) mysql>

获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

dayname(d)函数返回d对应的工作日的英文名称;

mysql> select dayname('2022-07-12'); +-----------------------+ | dayname('2022-07-12') | +-----------------------+ | Tuesday | +-----------------------+ 1 row in set (0.00 sec) mysql>

dayofweek(d)函数返回d对应的一周中的索引(位置,1表示周日,2表示周一,以此类推,7表示周六);

mysql> select dayofweek('2022-07-12') as coll, dayofweek('2022-07-13') as coll_1; +------+--------+ | coll | coll_1 | +------+--------+ | 3 | 4 | +------+--------+ 1 row in set (0.00 sec) mysql>

weekday(d)返回d对应的工作日索引:0表示周一,1表示周二,以此类推,6表示周日。

mysql> select weekday('2022-07-12') as coll, weekday('2022-07-13') as coll_1; +------+--------+ | coll | coll_1 | +------+--------+ | 1 | 2 | +------+--------+ 1 row in set (0.00 sec) mysql>

获取星期的函数WEEK(d)和WEEKOFYEAR(d)

week(d)计算日期d是一年中的第几周。

week()的双参数形式允许指定该星期是否始于周日或者周一,以及返回值的范围是否为0~53或者1~53.若mode参数被省略,则使用default_week_format系统自变量的值,如下图:

例如:使用week()函数查询指定日期是一年中的第几周;

mysql> select week('2022-07-13'), week('2022-01-01'), week('2022-09-18'); +--------------------+--------------------+--------------------+ | week('2022-07-13') | week('2022-01-01') | week('2022-09-18') | +--------------------+--------------------+--------------------+ | 28 | 0 | 38 | +--------------------+--------------------+--------------------+ 1 row in set (0.00 sec) mysql>

weekofyear(d)计算某一天位于一年中的第几周,范围是1~53,相当于week(d,3)

例如:使用weekofyear(d)查询指定日期是一年中的第几周;

mysql> select weekofyear('2022-07-13'), week('2022-07-13', 3); +--------------------------+-----------------------+ | weekofyear('2022-07-13') | week('2022-07-13', 3) | +--------------------------+-----------------------+ | 28 | 28 | +--------------------------+-----------------------+ 1 row in set (0.00 sec) mysql>

从上面可以看出,两个函数返回结果相同。

获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)

dayofyear(d)函数返回d是一年中的第几天,范围是1~366;

例如:使用dayofyear()函数返回指定日期在一年中的位置;

mysql> select dayofyear('2022-07-13'), dayofyear('2022-01-01'); +-------------------------+-------------------------+ | dayofyear('2022-07-13') | dayofyear('2022-01-01') | +-------------------------+-------------------------+ | 194 | 1 | +-------------------------+-------------------------+ 1 row in set (0.00 sec) mysql>

dayofmonth(d)函数返回d是一个月中的第几天,范围是1~31;

例如:使用dayofmonth()函数返回指定日期在一个月中的位置,必须有具体年份才可以。

mysql> select dayofmonth('2022-07-13'), dayofmonth('220713'), dayofmonth('0713'); +--------------------------+----------------------+--------------------+ | dayofmonth('2022-07-13') | dayofmonth('220713') | dayofmonth('0713') | +--------------------------+----------------------+--------------------+ | 13 | 13
                
                

-六神源码网