日期函数

  • TO_TIMESTAMP
  •  

    语法

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

    入参

     
    参数 数据类型
    time BIGINT
     
    说明 单位为毫秒。
    date VARCHAR
     
    说明 默认格式为自定义标量函数(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

 

  • NOW

语法

 
BIGINT NOW()
BIGINT NOW(a)

入参

 
参数 数据类型
a INT

功能描述

  • 未指定参数时返回当前时区时间的时间戳,单位为秒。
  • now(100)返回当前时间戳加100秒的时间戳。
     
    说明 偏移值a为NULL时,NOW(a)返回值为NULL。

示例

  • 测试数据 a(INT)
    表 1. T1
    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
  • CURRENT_TIMESTAMP

语法

 
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
  • DATE_FORMAT

语法

 
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

功能描述

yyyy-MM-dd hh:mm:ss。第三个参数为返回日期的格式,返回值为转换格式后的字符串类型日期。如果有参数为NULL或解析错误,则返回NULL。

示例

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

  • UNIX_TIMESTAMP

语法

 
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

 

相关文章: