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