日期函數
- 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