mysql数据库with ur_【数据库】MySQL 函数大全包含示例(涵盖了常用如时间、数字、字符串处理、数据流函数的和一些冷门的)...

ADDDATE(date,

INTERVAL expr unit),

ADDDATE(expr,days)

时间加减函数。 当使

用第二个参数的INTERVAL

形式调用时,ADDDATE()

是DATE_ADD()的同义词。

相关函数SUBDATE()

是DATE_SUB()的同义词

SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);

-> '2008-02-02'

SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);

-> '2008-02-02'

SELECT ADDDATE('2008-01-02', 31);

-> '2008-02-02'

ADDTIME(expr1,expr2)

expr1是时间或日期时间表达式,

expr2是时间表达式,

返回expr1+expr2

SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');

-> '2008-01-02 01:01:01.000001'

SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');

-> '03:00:01.999997'

CONVERT_TZ(dt,

from_tz,to_tz)

将datetime值dt从from_tz

给出的时区转换为to_tz

给出的时区,并返回

结果值

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

-> '2004-01-01 13:00:00'

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

-> '2004-01-01 22:00:00'

CURDATE()

CURRENT_DATE

CURRENT_DATE()

根据函数在字符串或

数字上下文中的使用

情况,以'YYYY-MM-DD'

或YYYYMMDD格式返回

当前日期作为值

SELECT CURDATE();

-> '2008-06-13'

SELECT CURDATE() + 0;

SELECT CURDATE() + 0;

CURRENT_TIME

CURRENT_TIME([fsp])

CURTIME()

以'hh:mm:ss'或hhmmss

格式返回当前时间值,

具体取决于函数是在字

符串中使用还是在数字

上下文中使用。该值

在会话时区中表示

SELECT CURTIME();

-> '23:50:26'

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

([fsp])NOW()

以'YYYY-MM-DD hh:mm:ss'或

YYYYMMDDhhmmss格式返回

当前日期和时间,

具体取决于函数是在

字符串中使用还是在数

字上下文中使用。该值

在会话时区中表示

SELECT NOW();

-> '2007-12-15 23:50:26'

DATE(expr)

提取date或datetime表

达式expr的date部分

SELECT DATE('2003-12-31 01:02:03');

-> '2003-12-31'

DATEDIFF(expr1,expr2)

DATEDIFF()返回

expr1 - expr2,

表示为从一个日期到

另一个日期的天数。

expr1和expr2是日期或日期

和时间表达式。

计算中只使用值的日期部分

SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');

-> 1

DATE_ADD(date,

INTERVAL expr unit)

DATE_SUB(date,

INTERVAL expr unit)

通ADDDATE()

DATE_FORMAT

(date,format)

根据格式字符串格式化

日期值

SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');

-> '22:23:00'

参见format列表

DATE_SUB(date,

INTERVAL expr unit)

同 DATE_ADD()

DAY(date)

同DAYOFMONTH()

DAYNAME(date)

返回日期的工作日名称。

名称使用的语言由

lc_time_names

系统变量的值控制

SELECT DAYNAME('2007-02-03');

-> 'Saturday'

参见local列表

DAYOFMONTH(date)

返回日期的月份的日期,范围

在1到31之间,或0表示日期,

例如“00:00 -00-00”或“200:00 -00”

包含零日部分

SELECT DAYOFMONTH('2007-02-03');

-> 3

DAYOFWEEK(date)

返回日期的工作日索引

(1 = Sunday, 2 = Monday,…,

7 = Saturday)。这些索引值对

应于ODBC标准

SELECT DAYOFWEEK('2007-02-03');

-> 7

DAYOFYEAR(date)

返回一年中的日期,范围

为1到366

SELECT DAYOFYEAR('2007-02-03');

-> 34

EXTRACT

(unit FROM date)

EXTRACT()函数使用与

DATE_ADD()或DATE_SUB()

相同的单元说明符,但

是它从日期中提取部分

内容,而不是执行日期

算术。有关单位

参数的信息,请参阅

Intervals列表

SELECT EXTRACT(YEAR FROM '2019-07-02');

->2019

FROM_DAYS(N)

给定日期N,返回日期值

SELECT FROM_DAYS(730669);

->'2000-07-03'

FROM_UNIXTIME(

unix_timestamp

[,format])

返回unix_timestamp参数

的表示形式,作为

'YYYY-MM-DD hh:mm:ss'

或YYYYMMDDhhmmss中的值。

uuuuu格式,取决于函

数是在字符串中使用

还是在数字上下文中使用

SELECT FROM_UNIXTIME(1447430881);

-> '2015-11-13 10:08:01'

SELECT FROM_UNIXTIME(1447430881,'%Y %D %M %h:%i:%s %x');

-> '2015 13th November 10:08:01 2015'

GET_FORMAT({DATE

|TIME|DATETIME},

{'EUR'|'USA'|'JIS'

|'ISO'|'INTERNAL'})

返回格式字符串。这个函数与

DATE_FORMAT()和

STR_TO_DATE()函数结合

使用非常有用。

SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));

-> '03.10.2003'

SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA'));

-> '2003-10-31' 更多参见GET_FORMAT列表

HOUR(time)

返回时间的小时。

对于时间值,返回值

的范围是0到23。然而,

时间值的范围实际上

要大得多,所以

HOUR可以返回大于23的值

SELECT HOUR('10:05:03');

-> 10

LAST_DAY(date)

根据date或datetime值返回该月

最后一天的对应值。如果

参数无效,则返回NULL

SELECT LAST_DAY('2003-02-05');

-> '2003-02-28'

SELECT LAST_DAY('2004-01-01 01:01:01');

-> '2004-01-31'

LOCALTIME,

LOCALTIME([fsp])

同NOW()

LOCALTIMESTAMP,

LOCALTIMESTAMP

([fsp])

同NOW()

MAKEDATE(year,dayofyear)

根据年份和一年中的

日期数的值,返回日期。

dayofyear必须大于0,

否则结果为NULL

SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);

-> '2011-01-31', '2011-02-01'

MAKETIME(hour,

minute,second)

根据给定的时分秒返回时

间,第二个参数可以是小数

SELECT MAKETIME(12,15,30);

-> '12:15:30'

MICROSECOND(expr)

将time或datetime表达式expr中

的微秒作为0到999999之间的

数字返回

SELECT MICROSECOND('2019-12-31 23:59:59.000010');

-> 10

MINUTE(time)

返回0到59范围内的时间分钟

SELECT MINUTE('2008-02-03 10:05:03');

-> 5

MONTH(date)

返回日期的月份,在1月

到12月的范围内为1到12,

或者在“00000 -00-00”

或“200000 -00-00”等包含

零月份部分的日期范

围内为0

SELECT MONTH('2008-02-03');

-> 2

MONTHNAME(date)

返回日期的月份的全名。名

称使用的语言由lc_time_names

系统变量的值控制

SELECT MONTHNAME('2008-02-03');

-> 'February'

NOW([fsp])

以'YYYY-MM-DD hh:mm:ss'或

YYYYMMDDhhmmss格式返

回当前日期和时间,具

体取决于函数是在字符串中使

用还是在数字上下文中使用。该

值在会话时区中表示

SELECT NOW();

-> '2007-12-15 23:50:26'

PERIOD_ADD(P,N)

在周期P中添加N个月

(格式为YYMM或YYYYMM)。

返回格式为YYYYMM的值

SELECT PERIOD_ADD(200801,2);

-> 200803

PERIOD_DIFF(P1,P2)

返回P1和P2期间的月数。

P1和P2的格式应该

是YYMM或YYYYMM

SELECT PERIOD_DIFF(200802,200703);

-> 11

QUARTER(date)

返回日期的年度季度,

范围为1到4

SELECT QUARTER('2008-04-01');

-> 2

SECOND(time)

返回时间的秒数,

范围0-59

SELECT SECOND('10:05:03');

-> 3

SEC_TO_TIME(seconds)

根据秒参数,作为时间

值转换为小时、分钟和

秒。果的范围受时

间数据类型的限制。

如果参数对应于该范围

之外的值,则会出现警告

SELECT SEC_TO_TIME(2378);

-> '00:39:38'

STR_TO_DATE(str,format)

将str转化为日期

SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y');

-> '2013-05-01'

SUBDATE(date,

INTERVAL expr unit),

SUBDATE(expr,days)

当使用第二个参数的区

间形式调用时,SUBDATE()

是DATE_SUB()的同义词

。有关间隔单元参数的信息,

请参阅DATE_ADD()的讨论

SELECT DATE_SUB('2008-01-02', INTERVAL 31 DAY);

-> '2007-12-02'

SUBTIME(expr1,expr2)

SUBTIME()返回与expr1格式

相同的值expr1 - expr2。

expr1是一个时间或

datetime表达式,

expr2是一个时间表达式

SELECT SUBTIME('2007-12-31 23:59:59.999999','1 1:1:1.000002');

-> '2007-12-30 22:58:58.999997'

SYSDATE([fsp])

以'YYYY-MM-DD hh:mm:ss'

或YYYYMMDDhhmmss格式

返回当前日期和时间,

具体取决于函数是在字符

串中使用还是在数字

上下文中使用

TIME(expr)

提取time或datetime表达式expr

的时间部分,并将其

作为字符串返回

SELECT TIME('2003-12-31 01:02:03');

-> '01:02:03'

SELECT TIME('2003-12-31 01:02:03.000123');

-> '01:02:03.000123'

TIMEDIFF(expr1,expr2)

TIMEDIFF()返回表示为时间

值的expr1 - expr2。

expr1和expr2是time或

date-and-time表达

式,但是它们必须具有

相同的类型

SELECT TIMEDIFF('2008-12-31 23:59:59.000001',

'2008-12-30 01:01:01.000002');

-> '46:58:57.999999'

TIMESTAMP(expr),

TIMESTAMP(expr1,expr2)

使用一个参数,该函

数将date或datetime

表达式expr作为datetime

值返回。使用两个参数,

它将时间表达式expr2

添加到date或datetime表达

式expr1中,并将结果作为

datetime值返回

SELECT TIMESTAMP('2003-12-31');

-> '2003-12-31 00:00:00'

SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');

-> '2004-01-01 00:00:00'

TIMESTAMPADD(unit,

interval,datetime_expr)

将整数表达式间隔添加

到日期或datetime表达式

datetime_expr。interval的

单位由单位参数给出,该

参数应该是以下值

之一:微秒(微秒)、秒、

分钟、小时、天、周、月、

季或年

SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');

-> '2003-01-02 00:01:00'

SELECT TIMESTAMPADD(WEEK,1,'2003-01-02');

-> '2003-01-09'

TIMESTAMPDIFF(unit,

datetime_expr1,

datetime_expr2)

返回datetime_expr2−

datetime_expr1,

其中datetime_expr1和

datetime_expr2是日期

或datetime表达式。一个

表达式可以是日期,

另一个表达式是日

期时间;日期值被视为一个

datetime,

在必要时包含时间部分

'00:00:00'。结果的

单位(整数)由单位参

数给出。unit的合法值

与TIMESTAMPADD()函

数描述中列出的值相同

SELECT TIMESTAMPDIFF(MONTH,'2003-02-01',

'2003-05-01');

-> 3

SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01',

'2003-05-01 12:05:55');

->128885

TIME_FORMAT

(time,format)

这类似于DATE_FORMAT()函数,

但是格式字符串可能只包含小时、

分钟、秒和微秒的格式说明符。

其他说明符生成空值或0

SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');

-> '100 100 04 04 4'

TIME_TO_SEC(time)

时间time转化为秒

SELECT TIME_TO_SEC('22:23:00');

-> 80580

TO_DAYS(date)

定日期date,返回日期号

(从第0年开始的天数)

SELECT TO_DAYS(950501);

-> 728779

SELECT TO_DAYS('2007-10-07');

-> 733321

TO_SECONDS(expr)

给定日期或datetime expr,返回从

第0年开始的秒数。如果expr

不是一个有效的日期或

datetime值,则返回NULL

SELECT TO_SECONDS('2009-11-29 13:43:32');

-> 63426721412

UNIX_TIMESTAMP

([date])

如果在没有date参数的

情况下调用UNIX_TIMESTAMP(),

它将返回一个Unix时间戳,

表示“1970-01-01 00:00:00”UTC

之后的秒.如果使用date

参数调用UNIX_TIMESTAMP(),

它将返回参数的值,

为“1970-01-01 00:00:00”

UTC之后的秒

SELECT UNIX_TIMESTAMP();

-> 1447431666

SELECT UNIX_TIMESTAMP('2015-11-13 10:20:19.012');

-> 1447431619.012

UTC_DATE,

UTC_DATE()

返回当前UTC日期作为

'YYYY-MM-DD'或YYYYMMDD

格式的值,这取决于

函数是在字符串中使用

还是在数字上下文中

使用。

SELECT UTC_DATE(), UTC_DATE() + 0;

-> '2003-08-14', 20030814

UTC_TIME,

UTC_TIME([fsp])

以'hh:mm:ss'或hhmmss

格式返回当前UTC

时间值,具体取决于函

数是在字符串中使用还

是在数字上下文中使用

SELECT UTC_TIME(), UTC_TIME() + 0;

-> '18:07:53', 180753.000000

UTC_TIMESTAMP,

UTC_TIMESTAMP

([fsp])

以'YYYY-MM-DD hh:mm:ss'

或YYYYMMDDhhmmss

格式返回当前UTC日期和时间,

具体取决于函数是在字

符串中使用还是在

数字上下文中使用

SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;

-> '2003-08-14 18:08:04', 20030814180804.000000

WEEK(date[,mode])

返回日期的星期号。

two-argument form of WEEK()

使您能够指定该周是

在周日还是周一开始,

以及返回值应该

在0到53之间,还是在1到53之间。

如果省略mode参数,

则使用default_week_format

系统变量的值 mode值

参见mode列表

SELECT WEEK('2008-02-20');

-> 7

WEEKDAY(date)

返回日期的星期索引

(0 =星期一、1 =星期二、

…6 =星期日)。

SELECT WEEKDAY('2008-02-03 22:23:00');

-> 6

WEEKOFYEAR(date)

以1到53之间的数字返回

日期的日历周。

WEEKOFYEAR()是一个兼容

函数,它等价于WEEK

(date,3)。

SELECT WEEKOFYEAR('2008-02-20');

-> 8

YEAR(date)

返回日期的年份,

范围为1000到9999,

或0表示“0”日期。

SELECT YEAR('1987-01-01');

-> 1987

YEARWEEK(date),

YEARWEEK(date,mode)

返回日期的年份和星期

SELECT YEARWEEK('1987-01-01');

-> 198652

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值