zoukankan      html  css  js  c++  java
  • Flink基础(57):FLINK-SQL函数(20) 内置函数(15)日期函数(二)

    语法

    Date TO_DATE(INT time)
    Date TO_DATE(VARCHAR date)
    Date TO_DATE(VARCHAR date,VARCHAR format)

    入参

     
    参数数据类型
    time INT
     
    说明 表示从1970-1-1到所表示时间之间天数。
    date VARCHAR
     
    说明 默认格式为yyyy-MM-dd。
    format VARCHAR

    功能描述

    将INT类型的日期或者VARCHAR类型的日期转换成DATE类型。

    示例

    • 测试数据
       
      date1(INT)date2(VARCHAR)date3(VARCHAR)
      100 2017-09-15 20170915
    • 测试语句
       
      SELECT TO_DATE(date1) as var1,
       TO_DATE(date2) as var2,
       TO_DATE(date3,'yyyyMMdd') as var3
      FROM T1;
    • 测试结果
       
      var1(DATE)var2(DATE)var3(DATE)
      1970-04-11 2017-09-15 2017-09-15

    语法

     
    VARCHAR FROM_UNIXTIME(BIGINT unixtime[, VARCHAR format])

    入参

     
    参数数据类型
    unixtime BIGINT
    format VARCHAR
     
    说明
    • 参数unixtime为长整型,是以秒为单位的时间戳。
    • 参数format可选,为日期格式,默认格式为yyyy-MM-dd HH:mm:ss,表示返回VARCHAR类型的符合指定格式的日期,如果有参数为null或解析错误,则返回null。

    功能描述

    返回值为VARCHAR类型的日期值,默认日期格式:yyyy-MM-dd HH:mm:ss,若指定日期格式按指定格式输出任一输入参数是NULL,返回NULL。

    示例

    • 测试数据
       
      unixtime1(BIGINT)nullstr(VARCHAR)
      1505404800 null
    • 测试语句
       
      SELECT FROM_UNIXTIME(unixtime1) as var1, 
       FROM_UNIXTIME(unixtime1,'MMdd-yyyy') as var2,
       FROM_UNIXTIME(unixtime1,nullstr) as var3
      FROM T1;               
    • 测试结果
       
      var1(VARCHAR)var2(VARCHAR)var3(VARCHAR)
      2017-09-15 00:00:00 0915-2017 null

    语法

    INT DATEDIFF(VARCHAR enddate, VARCHAR startdate)
    INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate)
    INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate)
    INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)

    入参

     
    参数数据类型
    startdate TIMESTAMP或VARCHAR
    enddate TIMESTAMP或VARCHAR
     
    说明 VARCHAR日期格式:yyyy-MM-dd或yyyy-MM-dd HH:mm:ss。

    功能描述

    计算从enddate到startdate两个时间的天数差值,返回整数。若有参数为NULL或解析错误,返回NULL。

    示例

    • 测试数据
       
      datetime1(VARCHAR)datetime2(VARCHAR)nullstr(VARCHAR)
      2017-10-15 00:00:00 2017-09-15 00:00:00 null
    • 测试语句
       
      SELECT  DATEDIFF(datetime1, datetime2) as int1, 
              DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',datetime2) as int2, 
              DATEDIFF(datetime2,TIMESTAMP '2017-10-15 23:00:00') as int3, 
              DATEDIFF(datetime2,nullstr) as int4, 
              DATEDIFF(nullstr,TIMESTAMP '2017-10-15 23:00:00') as int5, 
              DATEDIFF(nullstr,datetime2) as int6, 
              DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',TIMESTAMP '2017-9-15 00:00:00')as int7
      FROM T1;
    • 测试结果
       
      int1(INT)int2(INT)int3(INT)int4(INT)int5(INT)int6(INT)int7(INT)
      30 31 -31 null null null 31

    语法

     
    VARCHAR DATE_SUB(VARCHAR startdate, INT days)
    VARCHAR DATE_SUB(TIMESTAMP time, INT days)

    入参

     
    参数数据类型
    startdate VARCHAR
     
    说明 VARCHAR类型日期格式:yyyy-MM-dd或yyyy-MM-dd HH:mm:ss。
    time TIMESTAMP
    days INT

    功能描述

    返回startdate减去days天数的日期。返回VARCHAR类型的yyyy-MM-dd日期格式。如果有参数为null或解析错误,返回null。

    示例

    • 测试数据
       
      date1(VARCHAR)nullstr(VARCHAR)
      2017-10-15 null
    • 测试语句
       
      SELECT DATE_SUB(date1, 30) as var1,
       DATE_SUB(TIMESTAMP '2017-10-15 23:00:00',30) as var2,
       DATE_SUB(nullstr,30) as var3
      FROM T1;
    • 测试结果
       
      var1(VARCHAR)var2(VARCHAR)var3(VARCHAR)
      2017-09-15 2017-09-15 null

    语法

     
    VARCHAR DATE_ADD(VARCHAR startdate, INT days)
    VARCHAR DATE_ADD(TIMESTAMP time, INT days)

    入参

     
    参数数据类型
    startdate TIMESTAMP或VARCHAR
     
    说明 VARCHAR类型日期格式:yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss。
    enddate TIMESTAMP
    days INT

    功能描述

    返回指定startdate日期days天数后的VARCHAR类型日期,返回string格式的日期为yyyy-MM-dd。如果有参数为null或解析错误,返回null。

    示例

    • 测试数据
       
      datetime1(VATCHAR)nullstr(VATCHAR)
      2017-09-15 00:00:00 null
    • 测试语句
       
      SELECT DATE_ADD(datetime1, 30) as var1,
       DATE_ADD(TIMESTAMP '2017-09-15 23:00:00',30) as var2,
       DATE_ADD(nullstr,30) as var3
      FROM T1;   
    • 测试结果
       
      var1(VARCHAR)var2(VARCHAR)var3(VARCHAR)
      2017-10-15 2017-10-15 null

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/15058749.html

  • 相关阅读:
    已经菜到不行了 PAT 1010. Radix (25)
    容斥 或者 单调栈 hihocoder #1476 : 矩形计数 和 G. Snake Rana 2017 ACM Arabella Collegiate Programming Contest
    React的Context的使用方法简介
    canvas的进阶
    canvas的基础入门
    CSS3 中弹性盒模型--容器的属性
    creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
    D3.js 动画 过渡效果 (V3版本)
    D3.js(v3)+react 制作 一个带坐标轴与比例尺的折线图
    D3.js 弦生成器(V3版本)
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15058749.html
Copyright © 2011-2022 走看看