Add utc_timestamp function (#1456)

This commit is contained in:
HangyuanLiu
2019-07-11 11:09:08 +08:00
committed by ZHAO Chun
parent e27d2fcfb1
commit 941dec215b
4 changed files with 39 additions and 0 deletions

View File

@ -243,6 +243,18 @@ DateTimeVal TimestampFunctions::curtime(FunctionContext* context) {
return return_val;
}
DateTimeVal TimestampFunctions::utc_timestamp(FunctionContext* context) {
TimeInterval interval;
// TODO(liuhy): we only support Beijing Timezone, so minus 28800
interval.second = -28800;
DateTimeValue dtv = *(context->impl()->state()->now());
dtv.date_add_interval(interval, SECOND);
DateTimeVal return_val;
dtv.to_datetime_val(&return_val);
return return_val;
}
DateTimeVal TimestampFunctions::to_date(
FunctionContext* ctx, const DateTimeVal& ts_val) {
if (ts_val.is_null) {

View File

@ -78,6 +78,7 @@ public:
// Date/time functions.
static doris_udf::DateTimeVal now(doris_udf::FunctionContext* context);
static doris_udf::DateTimeVal curtime(doris_udf::FunctionContext* context);
static doris_udf::DateTimeVal utc_timestamp(doris_udf::FunctionContext* context);
static doris_udf::DateTimeVal to_date(
doris_udf::FunctionContext* ctx, const doris_udf::DateTimeVal& ts_val);
static doris_udf::IntVal date_diff(

View File

@ -0,0 +1,24 @@
# utc_timestamp
## Syntax
`DATETIME UTC_TIMESTAMP()`
## Description
返回当前UTC日期和时间在 "YYYY-MM-DD HH:MM:SS" 或
"YYYYMMDDHHMMSS"格式的一个值
根据该函数是否用在字符串或数字语境中
## Examples
```
mysql> select utc_timestamp(),utc_timestamp() + 1;
+---------------------+---------------------+
| utc_timestamp() | utc_timestamp() + 1 |
+---------------------+---------------------+
| 2019-07-10 12:31:18 | 20190710123119 |
+---------------------+---------------------+
```

View File

@ -112,6 +112,8 @@ visible_functions = [
'_ZN5doris18TimestampFunctions3nowEPN9doris_udf15FunctionContextE'],
[['curtime', 'current_time'], 'DATETIME', [],
'_ZN5doris18TimestampFunctions7curtimeEPN9doris_udf15FunctionContextE'],
[['utc_timestamp'], 'DATETIME', [],
'_ZN5doris18TimestampFunctions13utc_timestampEPN9doris_udf15FunctionContextE'],
[['timestamp'], 'DATETIME', ['DATETIME'],
'_ZN5doris18TimestampFunctions9timestampEPN9doris_udf15FunctionContextERKNS1_11DateTimeValE'],