当前位置: 首页 > 知识 >正文

mysql日期处理函数(mysql日期函数怎么用)

请参见7.3.6日期和时间类型,了解每种类型所拥有的值的范围的描述以及指定日期和时间值的有效格式。

下面是一个使用日期函数的例子。以下查询选择date_col值在过去30天内的所有记录:

mysqlSELECTsomethingFROMtable

WHERETO_DAYS(NOW())-TO_DAYS(date_col)=30;

DAYOFWEEK(date)

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

mysqlselectDAYOFWEEK('1998-02-03');

-3

WEEKDAY(date)

返回日期的日索引(0=星期一,1=星期二,6=周日)。

mysqlselectWEEKDAY('1997-10-0422:23:00');

-5

mysqlselectWEEKDAY('1997-11-05');

-2

DAYOFMONTH(date)

返回1到31之间的月份日期。

mysqlselectDAYOFMONTH('1998-02-03');

-3

DAYOFYEAR(date)

返回一年中日期的天数,范围从1到366。

mysqlselectDAYOFYEAR('1998-02-03');

-34

MONTH(date)

返回日期中的月份,范围从1到12。

mysqlselectMONTH('1998-02-03');

-2

DAYNAME(date)

返回日期是星期几。

mysqlselectDAYNAME('1998-02-05');

-'Thursday'

MONTHNAME(date)

返回日期的月份名称。

mysqlselectMONTHNAME('1998-02-05');

-'February'

QUARTER(date)

返回日期所在年份的第几个季度,范围为1到4。

mysqlselectQUARTER('98-04-01');

-2

WEEK(date)

 

WEEK(date,first)

对于星期日是一周的第一天的地方,有一个参数返回日期的周数,范围从0到52。WEEK()形式中允许有两个参数

您指定一周是从星期天开始还是从星期一开始?如果第二个参数是0,一周从星期日开始,如果第二个参数是1,

从星期一开始。

mysqlselectWEEK('1998-02-20');

-7

mysqlselectWEEK('1998-02-20',0);

-7

mysqlselectWEEK('1998-02-20',1);

-8

YEAR(date)

返回日期的年份,范围从1000到9999。

mysqlselectYEAR('98-02-03');

-1998

HOUR(time)

返回时间的小时值,范围从0到23。

mysqlselectHOUR('10:05:03');

-10

MINUTE(time)

返回时间的分钟数,范围从0到59。

mysqlselectMINUTE('98-02-0310:05:03');

-5

SECOND(time)

返回时间的秒数,范围从0到59。

mysqlselectSECOND('10:05:03');

-3

PERIOD_ADD(P,N)

阶段p加n个月(YYMM或YYYYMM格式)。以YYYYMM格式返回值。请注意,阶段参数p不是日期值。

mysqlselectPERIOD_ADD(9801,2);

-199803

PERIOD_DIFF(P1,P2)

返回P1期和P2期之间的月数。P1和P2应该采用YYMM或YYYYMM格式。请注意,期间参数P1和P2不是日期值。

mysqlselectPERIOD_DIFF(9802,199703);

-11

DATE_ADD(date,INTERVALexprtype)

 

DATE_SUB(date,INTERVALexprtype)

 

ADDDATE(date,INTERVALexprtype)

 

SUBDATE(date,INTERVALexprtype)

这些函数执行日期操作。对于MySQL3.22,它们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。

在MySQL3.23中,可以使用and-代替DATE_ADD()和DATE_SUB()。(参见示例)日期是指定的开始日期。

DATETIME或DATE值,expr是一个表达式,指定开始日期加上或减去的间隔值,expr是一个字符串。它可以基于

“-”开始表示负区间。Type是指示应该如何解释表达式的关键字。EXTRACT(typeFROMdate)函数从日期开始。

返回中的“类型”间隔。下表显示了type和expr参数之间的关系:type值表示预期的expr格式。

Second second second

MINUTE分钟MINUTES

HOUR时间HOURS

DAY天DAYS

MONTH月MONTHS

YEAR年YEARS

MINUTE_SECOND分钟和秒'MINUTES:SECONDS'

HOUR_MINUTE小时和分钟'HOURS:MINUTES'

DAY_HOUR天和小时'DAYSHOURS'

YEAR_MONTH年和月'YEARS-MONTHS'

HOUR_SECOND小时,分钟,'HOURS:MINUTES:SECONDS'

DAY_MINUTE天,小时,分钟'DAYSHOURS:MINUTES'

DAY_SECOND天,小时,分钟,秒'DAYSHOURS:MINUTES:SECONDS'

MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅

包含YEAR、MONTH和DAY部分(即,没有时间部分),结果是一个DATE值。否则结果是一个DATETIME值。

mysqlSELECT'1997-12-3123:59:59'+INTERVAL1SECOND;

-1998-01-0100:00:00

mysqlSELECTINTERVAL1DAY+'1997-12-31';

-1998-01-01

mysqlSELECT'1998-01-01'-INTERVAL1SECOND;

-1997-12-3123:59:59

mysqlSELECTDATE_ADD('1997-12-3123:59:59',

INTERVAL1SECOND);

-1998-01-0100:00:00

mysqlSELECTDATE_ADD('1997-12-3123:59:59',

INTERVAL1DAY);

-1998-01-0123:59:59

mysqlSELECTDATE_ADD('1997-12-3123:59:59',

INTERVAL'1:1'MINUTE_SECOND);

-1998-01-0100:01:00

mysqlSELECTDATE_SUB('1998-01-0100:00:00',

INTERVAL'11:1:1'DAY_SECOND);

-1997-12-3022:58:59

mysqlSELECTDATE_ADD('1998-01-0100:00:00',

INTERVAL'-110'DAY_HOUR);

-1997-12-3014:00:00

mysqlSELECTDATE_SUB('1998-01-02',INTERVAL31DAY);

-1997-12-02

mysqlSELECTEXTRACT(YEARFROM'1999-07-02');

-1999

mysqlSELECTEXTRACT(YEAR_MONTHFROM'1999-07-0201:02:03');

-199907

mysqlSELECTEXTRACT(DAY_MINUTEFROM'1999-07-0201:02:03');

-20102

如果你指定太短的间隔值(不包括type关键词期望的间隔部分),MySQL假设你省掉了间隔值的最左面部分。例如,

如果你指定一个type是DAY_SECOND,值expr被希望有天、小时、分钟和秒部分。如果你象'1:10'这样指定值,

MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话

相关文章:
  • 4月27日基金净值:工银战略转型股票A最新净值3.835,涨1.35%
  • 3月22日基金净值:南方科技创新混合A最新净值2.1545,涨1.02%_基金频道_证券之星
  • 4月17日基金净值:诺安双利债券发起最新净值2.675,涨0.22%
  • 4月13日基金净值:招商瑞泰1年持有混合A最新净值1.0158,跌0.03%
  • 又一家公募入局REITs 河北高速公募REITs项目有了最新进展
  • 4月25日基金净值:华商新兴活力混合最新净值2.483,跌1.27%
  • 5月9日基金净值:南方希元转债最新净值1.5225,跌1.07%
  • dedecms经常出现mysql"连接数据库失败,可能数据库密码不对"解决方案
  • 7月11日基金净值:中银主题策略混合A最新净值4.226,涨0.45%
  • 6月19日基金净值:安信价值回报三年持有混合A最新净值1.1171,跌1.55%