本文为您介绍STRING、TIMESTAMP与DATETIME类型数据间的转换方法,帮助您在实际业务处理过程中,快速对标找到合适的日期转换方法,提升业务处理效率。

日期数据格式转换常见场景如下:
  • STRING转换为TIMESTAMP
  • STRING转换为DATETIME
  • TIMESTAMP转换为STRING
  • TIMESTAMP转换为DATETIME
  • DATETIME转换为TIMESTAMP
  • DATETIME转换为STRING
  • STRING转换为TIMESTAMP

    将STRING类型数据转换为TIMESTAMP类型(格式为 yyyy-mm-dd hh:mi:ss.ff3 )的日期值。

    使用 CAST 函数进行转换。

    输入的STRING类型数据的格式至少要满足 yyyy-mm-dd hh:mi:ss 要求。

  • 示例1:使用CAST函数,将STRING类型数据 2009-07-01 16:09:00 转换为TIMESTAMP类型。命令示例如下。
    --返回2009-07-01 16:09:00.000。
    select cast('2009-07-01 16:09:00' as timestamp);
  • 示例2: 错误 使用CAST函数的命令示例如下。
    --返回NULL。输入数据格式不满足要求。至少要包含yyyy-mm-dd hh:mi:ss格式。
    select cast('2009-07-01' as timestamp);
  • 示例1:使用CAST函数,将STRING类型数据 2009-07-01 16:09:00 转换为DATETIME类型。命令示例如下。
    --返回2009-07-01 16:09:00。
    select cast('2009-07-01 16:09:00' as datetime);
  • 示例2:使用TO_DATE函数,指定 format 参数,将STRING类型数据 2009-07-01 16:09:00 转换为DATETIME类型。命令示例如下。
    --返回2009-07-01 16:09:00。
    select to_date('2009-07-01 16:09:00','yyyy-mm-dd hh:mi:ss');
  • 示例3: 错误 使用CAST函数的命令示例如下。
    --返回NULL。输入数据格式不满足要求。必须为yyyy-mm-dd hh:mi:ss格式。
    select cast('2009-07-01' as datetime);
  • 示例4: 错误 使用TO_DATE函数的命令示例如下。
    --返回NULL。输入数据格式不满足要求。必须为yyyy-mm-dd hh:mi:ss格式。
    select to_date('2009-07-01','yyyy-mm-dd hh:mi:ss');
  • 示例1:使用CAST函数,将TIMESTAMP类型数据 2009-07-01 16:09:00 转换为STRING类型。为构造TIMESTAMP类型数据,总共需要使用2次CAST函数。命令示例如下。
    --返回2009-07-01 16:09:00。
    select cast(cast('2009-07-01 16:09:00' as timestamp) as string);
  • 示例2:使用TO_CHAR函数,将TIMESTAMP类型数据 2009-07-01 16:09:00 转换为STRING类型。为构造TIMESTAMP类型数据,需要使用到1次CAST函数。命令示例如下。
    --返回2009-07-01 16:09:00。
    select to_char(cast('2009-07-01 16:09:00' as timestamp),'yyyy-mm-dd hh:mi:ss');
  • 将TIMESTAMP类型(格式为 yyyy-mm-dd hh:mi:ss.ff3 )的日期值转换为DATETIME类型(格式为 yyyy-mm-dd hh:mi:ss )的日期值。

  • 方法一:使用 CAST 函数进行转换。
  • 方法二:使用 TO_DATE 函数进行转换。

    使用TO_DATE函数时,需要指定 format 参数的取值为 yyyy-mm-dd hh:mi:ss

  • 示例1:使用CAST函数,将TIMESTAMP类型数据 2009-07-01 16:09:00 转换为DATETIME类型。为构造TIMESTAMP类型数据,总共需要使用2次CAST函数。命令示例如下。
    --返回2009-07-01 16:09:00。
    select cast(cast('2009-07-01 16:09:00' as timestamp) as datetime);
  • 示例2:使用TO_DATE函数,指定 format 参数,将TIMESTAMP类型数据 2009-07-01 16:09:00 转换为DATETIME类型。为构造TIMESTAMP类型数据,需要使用到1次CAST函数。命令示例如下。
    --返回2009-07-01 16:09:00。
    select to_date(cast('2009-07-01 16:09:00' as timestamp),'yyyy-mm-dd hh:mi:ss');
  • 将DATETIME类型(格式为 yyyy-mm-dd hh:mi:ss )的日期值转换为TIMESTAMP类型(格式为 yyyy-mm-dd hh:mi:ss.ff3 )的日期值。

    使用 CAST 函数进行转换。

    使用CAST函数,将DATETIME类型的日期值转换为TIMESTAMP类型。为构造DATETIME类型数据,需要使用到1次GETDATE函数。命令示例如下。
    --返回2021-10-14 10:21:47.939。
    select cast(getdate() as timestamp);
  • 示例1:使用CAST函数,将DATETIME类型的日期值转换为STRING类型。为构造DATETIME类型数据,需要使用到1次GETDATE函数。命令示例如下。
    --返回2021-10-14 10:21:47。
    select cast(getdate() as string);
  • 示例2:使用TO_CHAR函数,将DATETIME类型的日期值转换为指定格式的STRING类型。为构造DATETIME类型数据,需要使用到1次GETDATE函数。命令示例如下。
    --返回2021-10-14 10:21:47。
    select to_char (getdate(),'yyyy-mm-dd hh:mi:ss');
    --返回2021-10-14。
    select to_char (getdate(),'yyyy-mm-dd');
    --返回2021。
    select to_char (getdate(),'yyyy');
    • 本页导读 (1)