GeaFlow支持以下日期函数: * from_unixtime * from_unixtime_millis * unix_timestamp * unix_timestamp_millis * isdate * now * day * weekday * lastday * day_of_month * week_of_year * date_add * date_sub * date_diff * add_months * date_format * date_part * date_trunc

from_unixtime

Syntax

string from_unixtime(int unixtime)
string from_unixtime(long unixtime)
string from_unixtime(int unixtime, string format)
string from_unixtime(long unixtime, string format)
string from_unixtime(string unixtime, string format)

Description 将Unix时间戳转换成时间格式, 默认格式为“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回Null。

Example

from_unixtime(11111111) = '1970-05-09 22:25:11'
from_unixtime(11111111, 'yyyy-MM-dd HH:mm:ss.SSSSSS') = '1970-05-09 22:25:11.000000'

from_unixtime_millis

Syntax

string from_unixtime_millis(int unixtime)
string from_unixtime_millis(long unixtime)
string from_unixtime_millis(string unixtime)
string from_unixtime_millis(int unixtime, string format)
string from_unixtime_millis(long unixtime, string format)

Description 将Unix毫秒时间戳转换成时间格式, 默认格式为“yyyy-MM-dd HH:mm:ss.SSS”。如果任何输入为空,则返回Null。 Example

from_unixtime_millis(11111111) = '1970-01-01 11:05:11.111'
from_unixtime_millis(11111111, 'yyyy-MM-dd HH:mm:ss') = '1970-01-01 11:05:11'
from_unixtime_millis(11111111, 'yyyy-MM-dd HH:mm:ss.SSSSSS') = '1970-01-01 11:05:11.111000'

unix_timestamp

Syntax

long unix_timestamp()
long unix_timestamp(string dateText)
long unix_timestamp(string dateText, string patternText)

Description 返回Unix时间戳。如果未提供任何参数,则返回当前时间戳。如果给出dateText,则返回相应的时间戳。当未指定格式文本patternText时,则使用默认格式“yyyy-MM-dd”、“yyyy-MM-dd HH:mm:ss”或“yyyy-MM-dd HH:mm:ss.SSSSSS”解析dateText。如果任何输入为空,则返回Null。

Example

unix_timestamp('1987-06-05 00:11:22') = 549817882
unix_timestamp('1987-06-05 00:11', 'yyyy-MM-dd HH:mm') = 549817860

unix_timestamp_millis

Syntax

long unix_timestamp_millis()
long unix_timestamp_millis(string dateText)
long unix_timestamp_millis(string dateText, string patternText)

Description 返回Unix毫秒时间戳。类似于函数unix_timestampExample

unix_timestamp_millis('1987-06-05 00:11:22') = 549817882000
unix_timestamp_millis('1987-06-05', 'yyyy-mm-dd') = 536774760000

isdate

Syntax

boolean isdate(string date)
boolean isdate(string date, string format)

Description 判断字符串是否为指定格式的日期。默认格式为“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回false。

Example

isdate('1987-06-05 00:11:22') = true
isdate('xxxxxxxxxxxxx') = false
isdate('1987-06-05 00:11:22', 'yyyy-MM-dd HH:mm:ss.SSSSSS') = false

now

Syntax

long now()
long now(int offset)
long now(long offset)

Description 返回带有可选偏移量的当前时间戳。

Example

now()
now(1000)

day

Syntax

int day(string dateString)

Description 返回指定日期的天数。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回null。

Example

day('1987-06-05 00:11:22') = 5

weekday

Syntax

int weekday(string dateString)

Description 返回指定日期的星期几。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回null。

Example

weekday('1987-06-05 00:11:22') = 5

lastday

Syntax

string lastday(string dateString)

Description 返回指定日期所在月份的最后一天。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回null。

Example

lastday('1987-06-05') = '1987-06-30 00:00:00'

day_of_month

Syntax

int day_of_month(string dateString)

Description 返回指定日期所在月份的日期。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回null。

Example

day_of_month('1987-06-05 00:11:22') = 5

week_of_year

Syntax

int week_of_year(string dateString)

Description 返回给定日期所在年份的周数。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回null。

Example

week_of_year('1987-06-05 00:11:22') = 23

date_add

Syntax

string date_add(string date, int days)

Description 将指定日期增加指定天数。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回Null。

Example

date_add('2017-09-25 10:00:00', 1) = '2017-09-26'
date_add('2017-09-25', 1) = '2017-09-26'
date_add('2017-09-25', -1) = '2017-09-24'

date_sub

Syntax

string date_sub(string date, int days)

Description 将指定日期减去指定天数。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回Null。

Example

date_sub('2017-09-25 10:00:00', 1) = '2017-09-24'
date_sub('2017-09-25', 1) = '2017-09-24'
date_sub('2017-09-25', -1) = '2017-09-26'

date_diff

Syntax

int date_diff(string dateString1, string dateString2)

Description 返回从dateString2到dateString1的天数。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回Null。

Example

date_diff('2017-09-26', '2017-09-25') = 1
date_diff('2017-09-24', '2017-09-25') = -1

add_months

Syntax

string add_months(string date, int months)

Description 将指定日期增加指定月份。默认格式为“yyyy-MM-dd”或“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回Null。

Example

add_months('2017-09-25 10:00:00', 1) = '2017-10-25 10:00:00'
add_months('2017-09-25', 1) = '2017-10-25'
add_months('2017-09-25', -1) = '2017-08-25'

date_format

Syntax

string date_format(string dateText)
string date_format(string dateText, string toFormat)
string date_format(string dateText, string fromFormat, string toFormat)

Description 将日期从一种格式转换为另一种格式。默认的fromFormat为“yyyy-MM-dd HH:mm:ss”或“yyyy-MM-dd HH:mm:ss.SSSSSS”,默认的toFormat为“yyyy-MM-dd HH:mm:ss”。如果任何输入为空,则返回Null。

Example

date_format('1987-06-05 00:11:22') = '1987-06-05 00:11:22'
date_format('1987-06-05 00:11:22', 'MM-dd-yyyy') = '06-05-1987'
date_format('00:11:22 1987-06-05', 'HH:mm:ss yyyy-MM-dd', 'MM-dd-yyyy') = '06-05-1987'

date_part

Syntax

int date_part(string dateText, string datePart)

Description 按日期部分格式返回日期的部分。默认日期格式为“yyyy-MM-dd HH:mm:ss”或“yyyy-MM-dd”。如果任何输入为空,则返回Null。datePart格式如下表所示。

Select datePart
yyyy, year
mm, mon, month
月中天数 dd, day
一天中小时数 hh, hour
mi, minute
ss, second

Example

date_part('1987-06-05 00:11:22', 'yyyy') = 1987
date_part('1987-06-05 00:11:22', 'mm') = 6
date_part('1987-06-05 00:11:22', 'dd') = 5
date_part('1987-06-05 00:11:22', 'hh') = 0
date_part('1987-06-05 00:11:22', 'mi') = 11
date_part('1987-06-05 00:11:22', 'ss') = 22
date_part('1987-06-05', 'ss') = 0

date_trunc

Syntax

string date_trunc(string dateText, string datePart)

Description 按指定格式将日期截断。默认日期格式为“yyyy-MM-dd HH:mm:ss”或“yyyy-MM-dd”。如果任何输入为空,则返回Null。datePart格式与函数date_part相同。

Example

date_trunc('1987-06-05 00:11:22', 'yyyy') = '1987-01-01 00:00:00'
date_trunc('1987-06-05 00:11:22', 'mm') = '1987-06-01 00:00:00'
date_trunc('1987-06-05 00:11:22', 'dd') = '1987-06-05 00:00:00'
date_trunc('1987-06-05 00:11:22', 'hh') = '1987-06-05 00:00:00'
date_trunc('1987-06-05 00:11:22', 'mi') = '1987-06-05 00:11:00'
date_trunc('1987-06-05 00:11:22', 'ss') = '1987-06-05 00:11:22'
date_trunc('1987-06-05', 'ss') = '1987-01-01 00:00:00'