时间格式及转换函数(2.0版)

更新时间:
  • DATE_FORMAT:按照指定格式,将日期时间类型的数据转换为字符串类型。

  • TO_CHAR:按照指定格式,显示日期时间。

  • SEC_TO_TIME:返回秒数对应的时间。

  • TIME_TO_SEC:将时间转换为当天的秒数。

  • STR_TO_DATE:按照指定格式,将字符串类型的数据转换为DATE类型。

  • TIME

  • TIMESTAMP

  • TO_DAYS:返回从0年开始以来的天数。

DATE_FORMAT

date_format(datetime, format)
  • 命令说明:按照format指定的格式,将日期时间格式化成字符串。

  • 参数说明:

    • datetime:类型为TIMESTAMP或者DATE。

    • format:格式字符串,格式转换符请参见格式符

  • 示例:

      SELECT date_format(now(), '%Y-%m-%d %H:%i:%s') as col1, now() as col2;
      +---------------------+-----------------------+
      | col1                | col2                  |
      +---------------------+-----------------------+
      | 2018-12-08 17:06:21 | 2018-12-08 17:06:21.0 |
      SELECT date_format(current_date(), '%Y-%m-%d %H-%i-%s') as col1, current_date() as col2;
      +---------------------+-----------------------+
      | col1                | col2                  |
      +---------------------+-----------------------+
      | 2018-12-08 00-00-00 | 2018-12-08            |

TO_CHAR

to_char(datetime, format)
  • 命令说明:按照format指定的格式,将日期时间格式化成字符串。

  • 参数说明:

    • datetime:类型为TIMESTAMP或者DATE。

    • format:格式字符串,格式转换符请参见格式符

  • 示例:

      SELECT to_char(now(), '%Y-%m-%d %H:%i:%s') as col1;
      +---------------------+
      | col1                |
      +---------------------+
      | 2018-12-08 17:08:56 |
      SELECT to_char(current_date(), '%Y-%m-%d %H:%i:%s') as col1;
      +---------------------+
      | col1                |
      +---------------------+
      | 2018-12-08 00:00:00 |

SEC_TO_TIME

SEC_TO_TIME(seconds)
  • 命令说明:返回秒数对应的时间。

  • 参数说明:seconds类型为BIGINT。

  • 示例:

      SELECT SEC_TO_TIME(11111) as col1;
      +----------+
      | col1     |
      +----------+
      | 03:05:11 |

TIME_TO_SEC

TIME_TO_SEC(time)
  • 命令说明:将时间转换为当天的秒数。

  • 参数说明:time类型为VARCHAR。

  • 示例:

      SELECT TIME_TO_SEC('22:23:00') as col1;
      +-------+
      | col1  |
      +-------+
      | 80580 |

STR_TO_DATE

STR_TO_DATE(str,format)
  • 命令说明:按照format格式,将字符串类型的数据转换为DATE类型。

  • 返回值类型:DATE。

  • 示例:

      SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y') as col1;
      +------------+
      | col1       |
      +------------+
      | 2013-05-01 |

TIME

TIME(expr)
SELECT TIME('2003-12-31 01:02:03') as col1;
+----------+
| col1     |
+----------+
| 01:02:03 |

TIMESTAMP

TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)

示例:

SELECT TIMESTAMP('2003-12-31 01:02:03') as col1;
+-----------------------+
| col1                  |
+-----------------------+
| 2003-12-31 01:02:03.0 |
SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:01') as col1;
+-----------------------+
| col1                  |
+-----------------------+
| 2004-01-01 00:00:01   |

TO_DAYS

TO_DAYS(date)
  • 命令说明:返回从0年开始的天数。

  • 参数说明:date类型为VARCHAR、DATE或者TIMESTAMP。

  • 示例:

      SELECT TO_DAYS('2007-10-07') as col1;
      +--------+
      | col1   |
      +--------+
      | 733321 |
      SELECT TO_DAYS(curdate()) as col1;
      +--------+
      | col1   |
      +--------+
      | 737401 |

相关文档

格式符