Mysql —日期和时间函数(二)

  • GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})

返回一个格式字符串。此函数与DATE_FORMAT()和STR_TO_DATE()函数结合使用非常有用。
如果format 为NULL,此函数将返回NULL。
第一个和第二个参数的可能值会产生几个可能的格式字符串(有关使用的说明符,请参阅DATE_format()函数描述中的表)。ISO格式指的是ISO 9075,而不是ISO 8601。 

Function Call

Result

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'

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'
  • LAST_DAY(date)

获取日期或日期时间值,并返回该月最后一天的相应值。如果参数无效或为NULL,则返回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
  • MICROSECOND(expr)

以0到999999之间的数字形式返回时间或日期时间表达式expr的微秒。如果expr为NULL,则返回NULL。

mysql> SELECT MICROSECOND('12:00:00.123456');
        -> 123456
mysql> SELECT MICROSECOND('2019-12-31 23:59:59.000010');
        -> 10
  •  MINUTE(time)

返回时间的分钟,范围为0到59,如果时间为NULL,则返回NULL。

mysql> SELECT MINUTE('2008-02-03 10:05:03');
        -> 5
  •   MONTH(date)

返回日期的月份,对于1月到12月,返回范围为1到12;对于具有零月份部分的日期,返回0,例如“0000-00-00”或“2008-00-00”。如果日期为NULL,则返回NULL。

mysql> SELECT MONTH('2008-02-03');
        -> 2
  •  MONTHNAME(date)

返回日期所在月份的全名。用于名称的语言由lc_time_names系统变量的值控制。如果日期为NULL,则返回NULL。

mysql> SELECT MONTHNAME('2008-02-03');
        -> 'February'
  •  NOW([fsp])

以“YYYY-MM-DD hh:MM:ss”或YYYY-MMDDhhmmss格式的值返回当前日期和时间,具体取决于函数是在字符串上下文中使用还是在数字上下文中使用。该值以会话时区表示。
如果给定fsp参数以指定从0到6的小数秒精度,则返回值包括该数字的小数秒部分。

mysql> SELECT NOW();
        -> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
        -> 20071215235026.000000

 NOW()返回一个常量时间,指示语句开始执行的时间。(在存储的函数或触发器中,NOW()返回函数或触发语句开始执行的时间。)这与SYSDATE()的行为不同,后者返回执行的确切时间。

mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(2) | NOW()               |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |
+---------------------+----------+---------------------+

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(2) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |
+---------------------+----------+---------------------+

此外,SET TIMESTAMP语句会影响NOW()返回的值,但不会影响SYSDATE()返回。这意味着二进制日志中的时间戳设置对SYSDATE()的调用没有影响。将时间戳设置为非零值会导致NOW()的每次后续调用都返回该值。将时间戳设置为零将取消此效果,以便NOW()再次返回当前日期和时间。
请参阅SYSDATE()的描述,以获取有关这两个函数之间差异的更多信息。

  • PERIOD_ADD(P,N)

将N个月添加到周期P(格式为YYYMM或YYYYMM)。返回格式为YYYYMM的值。

如果P或N为NULL,此函数将返回NULL。

mysql> SELECT PERIOD_ADD(200801,2);
        -> 200803
  •  PERIOD_DIFF(P1,P2)

返回周期P1和周期P2之间的月数。P1和P2的格式应为YYYMM或YYYYMM。请注意,周期参数P1和P2不是日期值。
如果P1或P2为NULL,此函数将返回NULL。

mysql> SELECT PERIOD_DIFF(200802,200703);
        -> 11

 

你可能感兴趣的:(java基础,java)