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