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

  • 相关阅读:
    Linux下安装Apache2.4.43踩坑记录
    网络代理条件下配置git
    docker存储驱动的选择
    Python列表排序
    解决apache无法启动No space left on device
    Flask匹配url使用正则表达式
    Web安全-客户端脚本安全
    springboot中的一些好用注解
    基于cdn方式的vue+element-ui的单页面架构
    干货网站
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15058749.html
Copyright © 2011-2022 走看看