- GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')
返回一个格式字符串。这个函数在同DATE_FORMAT() 及STR_TO_DATE()函数结合时很有用。
第一个参数的3个可能值和第二个参数的5个可能值产生 15 个可能格式字符串 (对于使用的说明符,请参见DATE_FORMAT()函数说明表 )。
|
函数调用 |
结果 |
|
GET_FORMAT(DATE,'USA') |
'%m.%d.%Y' |
|
GET_FORMAT(DATE,'JIS') |
'%Y-%m-%d' |
|
GET_FORMAT(DATE,'ISO') |
'%Y-%m-%d' |
|
GET_FORMAT(DATE,'EUR') |
'%d.%m.%Y' |
|
GET_FORMAT(DATE,'INTERNAL') |
'%Y%m%d' |
|
GET_FORMAT(DATETIME,'USA') |
'%Y-%m-%d-%H.%i.%s' |
|
GET_FORMAT(DATETIME,'JIS') |
'%Y-%m-%d %H:%i:%s' |
|
GET_FORMAT(DATETIME,'ISO') |
'%Y-%m-%d %H:%i:%s' |
|
GET_FORMAT(DATETIME,'EUR') |
'%Y-%m-%d-%H.%i.%s' |
|
GET_FORMAT(DATETIME,'INTERNAL') |
'%Y%m%d%H%i%s' |
|
GET_FORMAT(TIME,'USA') |
'%h:%i:%s %p' |
|
GET_FORMAT(TIME,'JIS') |
'%H:%i:%s' |
|
GET_FORMAT(TIME,'ISO') |
'%H:%i:%s' |
|
GET_FORMAT(TIME,'EUR') |
'%H.%i.%S' |
|
GET_FORMAT(TIME,'INTERNAL') |
'%H%i%s' |
ISO 格式为ISO 9075, 而非ISO 8601.
也可以使用TIMESTAMP, 这时GET_FORMAT()的返回值和DATETIME相同。
mysql> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));
-> '03.10.2003'
mysql> SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA'));
-> '2003-10-31'
- HOUR(time)
返回time 对应的小时数。对于日时值的返回值范围是从 0 到 23 。
mysql> SELECT HOUR('10:05:03');
-> 10
然而, TIME 值的范围实际上非常大, 所以HOUR可以返回大于23的值。
mysql> SELECT HOUR('272:59:59');
-> 272
- LAST_DAY(date)
获取一个日期或日期时间值,返回该月最后一天对应的值。若参数无效,则返回NULL。
mysql> SELECT LAST_DAY('2003-02-05');
-> '2003-02-28'
mysql> SELECT LAST_DAY('2004-02-05');
-> '2004-02-29'
mysql> SELECT LAST_DAY('2004-01-01 01:01:01');
-> '2004-01-31'
mysql> SELECT LAST_DAY('2003-03-32');
-> NULL
- LOCALTIME, LOCALTIME()
LOCALTIME 及 LOCALTIME()和NOW()具有相同意义。
- LOCALTIMESTAMP, LOCALTIMESTAMP()
LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意义。
- MAKEDATE(year,dayofyear)
给出年份值和一年中的天数值,返回一个日期。dayofyear 必须大于 0 ,否则结果为 NULL。
mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
-> '2001-01-31', '2001-02-01'
mysql> SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);
-> '2001-12-31', '2004-12-30'
mysql> SELECT MAKEDATE(2001,0);
-> NULL
- MAKETIME(hour,minute,second)
返回由hour、 minute和second 参数计算得出的时间值。
mysql> SELECT MAKETIME(12,15,30);
-> '12:15:30'
- MICROSECOND(expr)
从时间或日期时间表达式expr返回微秒值,其数字范围从 0到 999999。
mysql> SELECT MICROSECOND('12:00:00.123456');
-> 123456
mysql> SELECT MICROSECOND('1997-12-31 23:59:59.000010');
-> 10
- MINUTE(time)
返回 time 对应的分钟数,范围是从 0 到 59。
mysql> SELECT MINUTE('98-02-03 10:05:03');
-> 5
- MONTH(date)
返回date 对应的月份,范围时从 1 到 12。
mysql> SELECT MONTH('1998-02-03');
-> 2
- MONTHNAME(date)
返回date 对应月份的全名。
mysql> SELECT MONTHNAME('1998-02-05');
-> 'February '
- NOW()
返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。
mysql> SELECT NOW();
-> '1997-12-15 23:50:26'
mysql> SELECT NOW() + 0;
-> 19971215235026
在一个存储程序或触发器内, NOW() 返回一个常数时间,该常数指示了该程序或触发语句开始执行的时间。这同SYSDATE()的运行有所不同。
- PERIOD_ADD(P,N)
添加 N 个月至周期P (格式为YYMM 或YYYYMM),返回值的格式为 YYYYMM。注意周期参数 P 不是日期值。
mysql> SELECT PERIOD_ADD(9801,2);
-> 199803
- PERIOD_DIFF(P1,P2)
返回周期P1和 P2 之间的月份数。P1 和P2 的格式应该为YYMM或YYYYMM。注意周期参数 P1和P2 不是日期值。
mysql> SELECT PERIOD_DIFF(9802,199703);
-> 11
- QUARTER(date)
返回date 对应的一年中的季度值,范围是从 1到 4。
mysql> SELECT QUARTER('98-04-01');
-> 2
- SECOND(time)
返回time 对应的秒数, 范围是从 0到59。
mysql> SELECT SECOND('10:05:03');
-> 3
- SEC_TO_TIME(seconds)
返回被转化为小时、 分钟和秒数的seconds参数值, 其格式为 'HH:MM:SS' 或HHMMSS,具体格式根据该函数是否用在字符串或数字语境中而定。
mysql> SELECT SEC_TO_TIME(2378);
-> '00:39:38'
mysql> SELECT SEC_TO_TIME(2378) + 0;
-> 3938
(责任编辑:ken)
