欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql日期时间常用函数总结

程序员文章站 2022-04-09 10:01:42
...

在mysql中我们经常会用到一些常用的时间与日期一些运算,下面我来总结一下关于mysql日期时间常用函数介绍,有需要的朋友参考。

一、时间差

datediff:说白了就是用第一个时间去减第二个时间,顺序不能忘记

代码如下 复制代码

select datediff('2012-08-08', '2012-08-13'); -- -5

二、获取当前时间

代码如下 复制代码

now
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)

sysdate(); //动态获取系统时间。这个要和now函数区分来,now就好比已经定义了一个变量,sysdate等于变量是在运行到后确定,所以他们有一个时差


三、获得当前日期(date)函数

curdate()

以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。

代码如下 复制代码

mysql> select CURDATE();

+------------+

| CURDATE() |

+------------+

| 2001-02-20 |

+------------+


current_date()


四、获得当前时间

curtime()

CURTIME() 返回当前时间

以'HH:MM:SS'或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。

代码如下 复制代码

mysql> select CURTIME();

+-----------+

| CURTIME() |

+-----------+

| 10:42:38 |

+-----------+


current_time()
current_time

五、获得当前 UTC 日期时间函数

代码如下 复制代码

select utc_timestamp(), utc_date(), utc_time(), now()

六、Mysql日期时间函数

代码如下 复制代码

set @dt = '2008-09-10 07:15:30.123456';

select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond(@dt); -- 123456


下面分离一些年月日函数

下面的查询选择了所有记录,其date_col的值是在最后30天以内:

代码如下 复制代码

mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col)

DAYOFWEEK(date)

返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

代码如下 复制代码

mysql> select DAYOFWEEK('1998-02-03'/res/images/smilies/wink.gif;
-> 3

WEEKDAY(date)

返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

代码如下 复制代码

mysql> select WEEKDAY('1997-10-04 22:23:00'/res/images/smilies/wink.gif;

-> 5

mysql> select WEEKDAY('1997-11-05'/res/images/smilies/wink.gif;

-> 2

DAYOFMONTH(date)

返回date的月份中日期,在1到31范围内。

代码如下 复制代码

mysql> select DAYOFMONTH('1998-02-03'/res/images/smilies/wink.gif;

-> 3

DAYOFYEAR(date)

返回date在一年中的日数, 在1到366范围内。

代码如下 复制代码

mysql> select DAYOFYEAR('1998-02-03'/res/images/smilies/wink.gif;

-> 34

MONTH(date)

返回date的月份,范围1到12。

代码如下 复制代码

mysql> select MONTH('1998-02-03'/res/images/smilies/wink.gif;

-> 2