`
DanielHan
  • 浏览: 57164 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
074641d7-eb86-343f-a745-65a0f693edb5
设计模式
浏览量:7364
社区版块
存档分类
最新评论

mysql日期时间函数

阅读更多
一.获取当前时间或日期
1.NOW()年月日时分秒
2.CURDATE()年月日
3.CURRENT_DATE()年月日
4.CURRENT_TIME()时分秒
5.CURRENT_TIMESTAMP()年月日时分秒
6.CURTIME()时分秒
7.LOCALTIME()年月日时分秒
8.LOCALTIMESTAMP()年月日时分秒
9.SYSDATE()年月日时分秒
10.SYSDATE() 日期时间函数跟 NOW() 类似,不同之处在于:NOW() 在执行开始时值就得到了, SYSDATE() 在函数执行时动态得到值。
例如
select NOW(),SLEEP(3),NOW()

select SYSDATE(),SLEEP(3),SYSDATE()

11.UTC时间
UTC_DATE(),UTC_TIME(),UTC_TIMESTAMP()
select UTC_DATE(),UTC_TIME(),UTC_TIMESTAMP(),NOW()

因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。

二.日期时间选取函数
1. 选取日期时间的各个部分:日期、时间、年、季度、月、周、日、小时、分钟、秒、微秒
set @dt = '2014-02-20 16:32:41.123456';
select DATE(@dt);        -- 2014-02-20
select TIME(@dt);        -- 16:32:41.123456
select YEAR(@dt);        -- 2014
select QUARTER(@dt);     -- 1
select MONTH(@dt);       -- 2
select WEEK(@dt);        -- 7(这个日期在本年的第几周,0-53)
select DAY(@dt);         -- 20
select HOUR(@dt);        -- 16
select MINUTE(@dt);      -- 32
select SECOND(@dt);      -- 41
select MICROSECOND(@dt); -- 123456
2.EXTRACT()函数
select EXTRACT(YEAR from @dt); -- 2014
select EXTRACT(QUARTER from @dt); -- 1
select EXTRACT(MONTH from @dt); -- 2
select EXTRACT(WEEK from @dt); -- 2
select EXTRACT(DAY from @dt); -- 20
select EXTRACT(HOUR from @dt); -- 16
select EXTRACT(MINUTE from @dt); -- 32
select EXTRACT(SECOND from @dt); -- 41
select EXTRACT(MICROSECOND from @dt); -- 123456

select EXTRACT(year_month from @dt); -- 201402
select EXTRACT(day_hour from @dt); -- 2016
select EXTRACT(day_minute from @dt); -- 201632
select EXTRACT(day_second from @dt); -- 20163241
select EXTRACT(day_microsecond from @dt); -- 20163241123456
select EXTRACT(hour_minute from @dt); -- 1632
select EXTRACT(hour_second from @dt); -- 163241
select EXTRACT(hour_microsecond from @dt); -- 163241123456
select EXTRACT(minute_second from @dt); -- 3241
select EXTRACT(minute_microsecond from @dt); -- 3241123456
select EXTRACT(second_microsecond from @dt); -- 41123456

三.dayof… 函数:DAYOFWEEK(), DAYOFMONTH(), DAYOFYEAR()
分别返回日期参数,在一周、一月、一年中的位置。
set @today='2014-02-21';
select DAYOFWEEK(@today) --6(1 = Sunday, 2 = Monday, …, 7 = Saturday)
select DAYOFMONTH(@today) --21
select DAYOFYEAR(@today) --52

四.week… 函数:WEEK(), WEEKOFYEAR(), DAYOFWEEK(), WEEKDAY(), YEARWEEK()
week(),dayofweek()已经介绍过
set @today='2014-02-21';
select WEEKOFYEAR(@today) --8
select WEEKDAY(@today) --4(0 = 周一 , 1 = 周二 , ... 6 = 周日 )
select YEARWEEK(@today) --201407 返回 year(2014) + week 位置(7)

五.返回星期和月份名称函数:DAYNAME(), MONTHNAME()
set @today='2014-02-21';
select DAYNAME(@today); --Friday
select MONTHNAME(@today); --February

六.LAST_DAY() 函数:返回月份中的最后一天
set @today='2014-02-21';
select LAST_DAY(@today); --2014-02-28

七.日期时间计算函数
1.为日期增加一个时间间隔:DATE_ADD(),ADDATE(), ADDTIME()
set @now=NOW();
select DATE_ADD(@now,INTERVAL 1 YEAR);
select DATE_ADD(@now,INTERVAL 1 QUARTER);
select DATE_ADD(@now,INTERVAL 1 MONTH);
select DATE_ADD(@now,INTERVAL 1 WEEK);
select DATE_ADD(@now,INTERVAL 1 DAY);
select DATE_ADD(@now,INTERVAL 1 HOUR);
select DATE_ADD(@now,INTERVAL 1 MINUTE);
select DATE_ADD(@now,INTERVAL 1 SECOND);
select DATE_ADD(@now,INTERVAL 1 MICROSECOND);

ADDATE()等价于DATE_ADD()
ADDTIME(expr ,expr2)
ADDTIME() 将 expr2 添加至 expr 然后返回结果。 expr 是一个时间或时间日期表达式,而 expr2 是一个时间表达式。
select ADDTIME(@now,'01:00:00');

2.为日期减去一个时间间隔:DATE_SUB(),SUBDATE(),SUBTIME()
set @now=NOW();
select DATE_SUB(@now,INTERVAL 1 DAY);

3.另类日期函数:PERIOD_ADD(P,N), PERIOD_DIFF(P1,P2)
PERIOD_ADD(P,N):
函数参数“P” 的格式为“YYYYMM” 或者 “YYMM”,第二个参数“N” 表示增加或减去 N month(月)。
select PERIOD_ADD(200808,2); --20081008
select PERIOD_ADD(200808,-2); --20080608

PERIOD_DIFF(P1,P2):
返回周期 P1 和 P2 之间的月份数。 P1 和 P2 的格式应该为 YYMM 或 YYYYMM 。注意周期参数 P1 和 P2 不是 日期值。
select PERIOD_DIFF(201402,201404) -- -2

4.日期、时间相减函数:DATEDIFF(expr ,expr2), TIMEDIFF(expr ,expr2)
DATEDIFF(expr ,expr2)
DATEDIFF() 返回起始时间 expr 和结束时间 expr2 之间的天数。 Expr 和 expr2 为日期或 date-and-time表达式。计算中只用到这些值的日期部分。
select DATEDIFF('2014-02-22 09:50:00','2014-02-21 09:50:00') --1

TIMEDIFF(expr ,expr2)
TIMEDIFF() 返回起始时间 expr 和结束时间 expr2 之间的时间。 expr 和 expr2 为时间或 date-and-time表达式, 两个的类型必须一样
select TIMEDIFF('2014-02-22 09:50:00','2014-02-21 09:50:00') --24:00:00

八.时间日期格式化函数
1.(时间、秒)转换函数:TIME_TO_SEC(time), SEC_TO_TIME(seconds)
select TIME_TO_SEC('10:15:00') --36900
select SEC_TO_TIME(36900) --10:15:00

2.(日期、天数)转换函数:TO_DAYS(date), from_days(days)
TO_DAYS(date):
给定一个日期 date , 返回一个天数 ( 从年份 0 开始的天数 )
select TO_DAYS('2014-02-21') --735650
select FROM_DAYS(735650) --2014-02-21

3.(字符串转换为日期)函数STR_TO_DATE(str ,format)
这是 DATE_FORMAT() 函数的倒转。它获取一个字符串 str 和一个格式字符串 format 。若格式字符串包含日期和时间部分,则 STR_TO_DATE() 返回一个 DATETIME 值, 若该字符串只包含日期部分或时间部分,则返回一个 DATE 或 TIME 值。
select STR_TO_DATE('02/21/2014', '%m/%d/%Y'); --2014-02-21
关于format,如下表


4.(日期/时间转换为字符串)函数:DATE_FORMAT(date,format),TIME_FORMAT(time,format)

5.获得国家地区时间格式函数:get_format()
select get_format(date,'usa')          ;   -- '%m.%d.%Y'
select get_format(date,'jis')          ;   -- '%Y-%m-%d'
select get_format(date,'iso')          ;   -- '%Y-%m-%d'
select get_format(date,'eur')          ;   -- '%d.%m.%Y'
select get_format(date,'internal')     ;   -- '%Y%m%d'
select get_format(datetime,'usa')      ;   -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'jis')      ;   -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'iso')      ;   -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'eur')      ;   -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'internal') ;   -- '%Y%m%d%H%i%s'
select get_format(time,'usa')          ;   -- '%h:%i:%s %p'
select get_format(time,'jis')          ;   -- '%H:%i:%s'
select get_format(time,'iso')          ;   -- '%H:%i:%s'
select get_format(time,'eur')          ;   -- '%H.%i.%s'
select get_format(time,'internal')     ;   -- '%H%i%s'

6.拼凑日期、时间函数:MAKEDATE(year,dayofyear), MAKETIME(hour,minute,second)
MAKEDATE(year,dayofyear):
给出年份值和一年中的天数值,返回一个日期。 dayofyear 必须大于 0 ,否则结果为 NULL
select MAKEDATE(2014,52) --2014-02-21

MAKETIME(hour,minute,second):
返回由 hour 、 minute 和 second 参数计算得出的时间值
select MAKETIME(10,37,0) --10:37:00

7.时区(timezone)转换函数CONVERT_TZ(dt ,from_tz ,to_tz )
CONVERT_TZ() 将时间日期值 dt 从 from_tz 给出的时区转到 to_tz 给出的时区,然后返回结果值。关于可能指定的时区的详细论述,若自变量无效,则这个函数会返回 NULL
select convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-08 04:00:00





  • 大小: 3.1 KB
  • 大小: 3.2 KB
  • 大小: 3.8 KB
分享到:
评论

相关推荐

    MySQL日期时间函数大全

    MySQL 日期时间函数大全 在 MySQL 中,日期时间函数是非常重要的一部分,它们可以帮助我们对日期和时间进行各种操作。下面我们将对 MySQL 中的日期时间函数进行详细的讲解。 DAYOFWEEK(date) `DAYOFWEEK` 函数...

    mysql的日期和时间函数.rar

    通过深入学习和实践这些MySQL日期和时间函数,开发者可以更有效地管理数据库中的日期和时间数据,创建出更加精确和复杂的查询语句。这个教程文档“mysql的日期和时间函数.doc”应该包含了详细解释和实例,帮助读者更...

    MYSQL 日期函数大全

    MYSQL 日期函数大全,供大家一起共同分享学习。

    mysql时间日期函数

    在MySQL数据库中,时间日期函数是处理与时间相关的数据时不可或缺的一部分。这些函数提供了丰富的功能,可以帮助用户在查询、更新或插入数据时精确地操作日期和时间。下面将详细介绍几个核心的时间日期函数及其应用...

    mysql日期函数时间函数及加减运算

    获得当前日期时间函数 MySQL 中有多种方式可以获得当前日期和时间,包括 now()、current_timestamp()、localtime()、localtimestamp() 等函数。其中,now() 函数是最常用的函数,用于获取当前的日期和时间。当前...

    MySQL时间日期相关函数

    在MySQL中,这些函数提供了丰富的功能,包括获取当前日期和时间、格式化日期、时间间隔计算以及进行日期时间的比较等。以下是一些常用的时间日期函数的详细说明: 1. **NOW()**: - NOW() 函数返回当前日期和时间...

    MySQL 日期时间函数常用总结

    ### MySQL 日期时间函数常用总结 #### 一、获取当前日期与时间 ##### 1.1 函数:`now()` - **功能描述**:此函数用于返回当前系统的时间戳,包括日期和时间两部分。 - **语法格式**:`now()` - **示例**: ```...

    mysql 日期函数相关操作

    在MySQL中,日期和时间函数提供了丰富的功能,用于处理日期和时间数据,这对于数据库管理和查询极为关键。以下是对几个常用日期函数的详细解析: ### 1. `TO_DAYS(date)` `TO_DAYS()`函数将一个日期转换为从“0000...

    mysql 时间函数

    1. 获得当前日期时间函数: mysql 中有多种函数可以获得当前的日期和时间,包括 now()、current_timestamp()、localtime()、localtimestamp() 等。这些函数都可以获得当前的日期和时间,但它们有所不同。now() 函数...

    mysql中取系统当前时间,当前日期方便查询判定的代码

    获取当前时间的MySql时间函数处理MySql时间日期的函数有很多,下面为您介绍的就是用于获取当前时间的MySql时间函数,如果您对此感兴趣的话,不妨一看下面为您介绍的MySql时间函数用于获取当前时间,该MySql时间函数...

    Mysql日期和时间函数大全[归类].pdf

    Mysql日期和时间函数大全 Mysql日期和时间函数大全是Mysql中日期和时间处理函数的集合,它们用于处理日期和时间类型的数据。这些函数可以用于各种日期和时间相关的计算、比较和格式化操作。 日期和时间类型 在...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    3. 日期和时间函数:如NOW()获取当前日期和时间,DATE_FORMAT()用于格式化日期和时间,DATE_ADD()和DATE_SUB()可以对日期进行加减操作。 4. 转换函数:如CAST()和CONVERT()用于在不同数据类型间转换,以及INET_ATON...

    MySQL内置函数中的日期和时间函数详解.pdf

    在MySQL中,日期和时间函数是内置函数的重要组成部分,它们提供了丰富的操作来处理日期和时间数据。本文将详细探讨这些函数,并通过示例说明如何在实际应用中使用它们。 1. CURDATE()和CURRENT_DATE() CURDATE()...

    mysql日期函数总结

    ### MySQL日期函数总结 在MySQL数据库管理中,处理日期与时间是常见的需求之一。通过使用各种日期函数,我们可以实现对日期进行格式化、计算日期之间的差异等操作,从而提高数据处理效率。本文将对MySQL中常用的...

    mysql常用日期时间/数值函数详解(必看)

    本篇文章将深入解析一些常用的MySQL日期时间函数以及数值函数。 1. **时间转化秒函数:time_to_sec** `time_to_sec()` 函数用于将时间值转换成秒。例如,`time_to_sec('01:01:01')` 返回的是3661秒,这是对小时、...

    mysql的日期和时间函数.pdf

    MySQL 日期和时间函数详解 MySQL 日期和时间函数是 MySQL 中的重要组件之一,它们提供了大量的日期和时间处理功能,本文将对这些函数进行详细的介绍和解释。 1. TO_DAYS() 函数 TO_DAYS() 函数将日期或日期时间...

    php Mysql日期和时间函数集合

    以下是一些重要的PHP和MySQL日期时间函数的详细说明: 1. **DATE_FORMAT(date, format)** - MySQL中的DATE_FORMAT函数用于按照指定的format字符串格式化date值。format字符串支持多种修饰符,如%M表示完整的月份...

    MySQL常用函数大全

    ### MySQL常用函数详解 ...以上总结涵盖了MySQL中常用的数学、组合、聚合、字符串以及日期时间函数。这些函数广泛应用于各种场景,例如数据处理、报表生成等。熟练掌握这些函数有助于提高SQL查询效率及结果准确性。

Global site tag (gtag.js) - Google Analytics