Flink基础(四十六):FLINK-SQL函数(8)内置函数(四)日期函数


日期函数

  •  TO_TIMESTAMP
  •  

    语法

     
    TIMESTAMP TO_TIMESTAMP(BIGINT time) TIMESTAMP TO_TIMESTAMP(VARCHAR date) TIMESTAMP TO_TIMESTAMP(VARCHAR date, VARCHAR format)

    入参

     
    参数 数据类型
    time BIGINT
     
    说明 单位为毫秒。
    date VARCHAR
     
    说明 默认格式为 yyyy-MM-dd HH:mm:ss。如果您的date为非默认格式,请使用自定义函数编写Java代码进行转化,详情请参见 自定义标量函数(UDF)
    format VARCHAR

    功能描述

    将BIGINT类型的日期或者VARCHAR类型的日期转换成TIMESTAMP类型。

    示例

    • 测试数据
       
      timestamp1(BIGINT) timestamp2(VARCHAR) timestamp3(VARCHAR)
      1513135677000 2017-09-15 00:00:00 20170915000000
    • 测试语句
       
      SELECT TO_TIMESTAMP(timestamp1) as var1, TO_TIMESTAMP(timestamp2) as var2, TO_TIMESTAMP(timestamp3, 'yyyyMMddHHmmss') as var3 FROM T1;
    • 测试结果
       
      var1(TIMESTAMP) var2(TIMESTAMP) var3(TIMESTAMP)
      2017-12-13 03:27:57.0 2017-09-15 00:00:00.0 2017-09-15 00:00:00.0
  •  LOCALTIMESTAMP

语法

 
timestamp LOCALTIMESTAMP

入参

功能描述

返回当前系统的时间戳。

示例

  • 测试语句
     
    SELECT LOCALTIMESTAMP as `result` FROM T1;
  • 测试结果
     
    result (TIMESTAMP)
    2018-07-27 14:04:38.998

 

语法

 
BIGINT NOW()
BIGINT NOW(a)

入参

 
参数 数据类型
a INT

功能描述

  • 未指定参数时返回当前时区时间的时间戳,单位为秒。
  • 可以在括号内输入INT类型参数作为偏移值(单位:秒),返回偏移后的时间戳。例如,now(100)返回当前时间戳加100秒的时间戳。
     
    说明 偏移值a为NULL时,NOW(a)返回值为NULL。

示例

  • 测试数据
    表 1. T1
    a(INT)
    null
  • 测试语句
     
    SELECT NOW() as now, NOW(100) as now_100, NOW(a) as now_null FROM T1;
  • 测试结果
     
    now(BIGINT) now_100(BIGINT) now_null(BIGINT)
    1403006911 1403007011 null

语法

 
TIMESTAMP CURRENT_TIMESTAMP
 
说明 Blink 3.6.0以下版本,语法格式为TIMESTAMP CURRENT_TIMESTAMP()。

功能描述

返回当前UTC(GMT+0)时间戳,时间戳单位为毫秒。

示例

  • 测试语句
     
    SELECT CURRENT_TIMESTAMP as var1 FROM T1;
  • 测试结果
     
    var1(TIMESTAMP)
    2007-04-30 13:10:02.047

语法

 
VARCHAR DATE_FORMAT(TIMESTAMP time, VARCHAR to_format) VARCHAR DATE_FORMAT(VARCHAR date, VARCHAR to_format) VARCHAR DATE_FORMAT(VARCHAR date, VARCHAR from_format, VARCHAR to_format)

入参

 
参数 数据类型
date VARCHAR
 
说明 默认日期格式: yyyy-MM-dd HH:mm:ss。
time TIMESTAMP
from_format VARCHAR
to_format VARCHAR

功能描述

将字符串类型的日期从源格式转换至目标格式。第一个参数(time 或 date)为源字符串。第二个参数from_format可选,为源字符串的格式,默认为yyyy-MM-dd hh:mm:ss。第三个参数为返回日期的格式,返回值为转换格式后的字符串类型日期。如果有参数为NULL或解析错误,则返回NULL。

示例

    • 测试数据
       
      date1(VARCHAR) datetime1(VARCHAR) nullstr(VARCHAR)
      0915-2017 2017-09-15 00:00:00 NULL

语法

 
BIGINT UNIX_TIMESTAMP()
BIGINT UNIX_TIMESTAMP(VARCHAR date)
BIGINT UNIX_TIMESTAMP(TIMESTAMP timestamp)
BIGINT UNIX_TIMESTAMP(VARCHAR date, VARCHAR format)

入参

 
参数 数据类型
timestamp TIMESTAMP
date VARCHAR
 
说明 默认日期格式为 yyyy-MM-dd HH:mm:ss
format VARCHAR
 
说明 默认格式为 yyyy-MM-dd hh:mm:ss

功能描述

返回第一个参数date转换成的长整型的时间戳,单位为秒。无参数时返回当前时间的时间戳,单位为秒,与now语义相同。如果有参数为null或解析错误,返回null。

示例

  • 测试数据
     
    nullstr(VARCHAR)
    null
  • 测试语句
     
    SELECT UNIX_TIMESTAMP() as big1, UNIX_TIMESTAMP(nullstr) as big2 FROM T1;
  • 测试结果
     
    big1(BIGINT) big2(BIGINT)
    1403006911 null

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM