详情页标题前

阿里云云原生大数据计算服务 MaxCompute日期数据格式转换:STRING、TIMESTAMP、DATETIME互相转换-云淘科技

详情页1

本文为您介绍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);

STRING转换为DATETIME

  • 应用场景

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

  • 实现方法
    • 方法一:使用CAST函数进行转换。
    • 方法二:使用TO_DATE函数进行转换。
  • 使用限制
    • 使用CAST函数时,输入的STRING类型数据的格式必须要满足yyyy-mm-dd hh:mi:ss要求。
    • 使用TO_DATE函数时,需要指定format参数的取值为yyyy-mm-dd hh:mi:ss
  • 使用示例
    • 示例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');

TIMESTAMP转换为STRING

  • 应用场景

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

  • 实现方法
    • 方法一:使用CAST函数进行转换。
    • 方法二:使用TO_CHAR函数按照format参数指定的格式进行转换。
  • 使用示例
    • 示例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转换为DATETIME

  • 应用场景

    将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转换为TIMESTAMP

  • 应用场景

    将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);

DATETIME转换为STRING

  • 应用场景

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

  • 实现方法
    • 方法一:使用CAST函数进行转换。
    • 方法二:使用TO_CHAR函数按照format参数指定的格式进行转换。
  • 使用示例
    • 示例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折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158391.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。