◆ HOUR(time)
返回time 对应的小时数。对于日时值的返回值范围是从 0 到 23 。
mysql> SELECT HOUR('10:05:03'); |
然而, TIME 值的范围实际上非常大, 所以HOUR可以返回大于23的值。
mysql> SELECT HOUR('272:59:59'); |
◆ LAST_DAY(date)
获取一个日期或日期时间值,返回该月最后一天对应的值。若参数无效,则返回NULL。
mysql> SELECT LAST_DAY('2003-02-05'); |
◆ LOCALTIME, LOCALTIME()
LOCALTIME 及 LOCALTIME()和NOW()具有相同意义。
◆ LOCALTIMESTAMP, LOCALTIMESTAMP()
LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意义。
◆ MAKEDATE(year,dayofyear)
给出年份值和一年中的天数值,返回一个日期。dayofyear 必须大于 0 ,否则结果为 NULL。
mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32); |
◆ MAKETIME(hour,minute,second)
返回由hour、 minute和second 参数计算得出的时间值。
mysql> SELECT MAKETIME(12,15,30); |
◆ MICROSECOND(expr)
从时间或日期时间表达式expr返回微秒值,其数字范围从 0到 999999。
mysql> SELECT MICROSECOND('12:00:00.123456'); |
◆ MINUTE(time)
返回 time 对应的分钟数,范围是从 0 到 59。
mysql> SELECT MINUTE('98-02-03 10:05:03'); |
◆ MONTH(date)
返回date 对应的月份,范围时从 1 到 12。
mysql> SELECT MONTH('1998-02-03'); |
◆ MONTHNAME(date)
返回date 对应月份的全名。
mysql> SELECT MONTHNAME('1998-02-05'); |
◆ NOW()
返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。
mysql> SELECT NOW(); |
在一个存储程序或触发器内, NOW() 返回一个常数时间,该常数指示了该程序或触发语句开始执行的时间。这同SYSDATE()的运行有所不同。
◆ PERIOD_ADD(P,N)
添加 N 个月至周期P (格式为YYMM 或YYYYMM),返回值的格式为 YYYYMM。注意周期参数 P 不是日期值。
mysql> SELECT PERIOD_ADD(9801,2); |
◆ PERIOD_DIFF(P1,P2)
返回周期P1和 P2 之间的月份数。P1 和P2 的格式应该为YYMM或YYYYMM。注意周期参数 P1和P2 不是日期值。
mysql> SELECT PERIOD_DIFF(9802,199703); |
◆ QUARTER(date)
返回date 对应的一年中的季度值,范围是从 1到 4。
mysql> SELECT QUARTER('98-04-01'); |
◆ SECOND(time)
返回time 对应的秒数, 范围是从 0到59。
mysql> SELECT SECOND('10:05:03'); |
◆ SEC_TO_TIME(seconds)
返回被转化为小时、 分钟和秒数的seconds参数值, 其格式为 'HH:MM:SS' 或HHMMSS,具体格式根据该函数是否用在字符串或数字语境中而定。
mysql> SELECT SEC_TO_TIME(2378); |
◆ STR_TO_DATE(str,format)
这是DATE_FORMAT() 函数的倒转。它获取一个字符串 str 和一个格式字符串format。若格式字符串包含日期和时间部分,则 STR_TO_DATE()返回一个 DATETIME 值, 若该字符串只包含日期部分或时间部分,则返回一个 DATE 或TIME值。
str所包含的日期、时间或日期时间值应该在format指示的格式中被给定。对于可用在format中的说明符,请参见DATE_FORMAT() 函数说明表。 所有其它的字符被逐字获取,因此不会被解释。若 str 包含一个非法日期、时间或日期时间值,则 STR_TO_DATE()返回NULL。同时,一个非法值会引起警告。
mysql> SELECT STR_TO_DATE('00/00/0000', '%m/%d/%Y'); |
◆ SUBDATE(date,INTERVAL expr type) SUBDATE(expr,days)
当被第二个参数的 INTERVAL型式调用时, SUBDATE()和DATE_SUB()的意义相同。对于有关INTERVAL参数的信息, 见有关 DATE_ADD()的讨论。
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY); |
第二个形式允许对days使用整数值。在这些情况下,它被算作由日期或日期时间表达式 expr中提取的天数。
mysql> SELECT SUBDATE('1998-01-02 12:00:00', 31); |
注意不能使用格式 "%X%V" 来将一个 year-week 字符串转化为一个日期,原因是当一个星期跨越一个月份界限时,一个年和星期的组合不能标示一个唯一的年和月份。若要将year-week转化为一个日期,则也应指定具体工作日:
mysql> select str_to_date('200442 Monday', '%X%V %W'); |
◆ SUBTIME(expr,expr2)
SUBTIME()从expr 中提取expr2 ,然后返回结果。expr 是一个时间或日期时间表达式,而xpr2 是一个时间表达式。
mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002'); |
◆ SYSDATE()
返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS, 具体格式根据函数是否用在字符串或数字语境而定。
在一个存储程序或触发器中, SYSDATE()返回其执行的时间, 而非存储成都或触发语句开始执行的时间。这个NOW()的运作有所不同。