本文介紹日期時間函數的文法規則,包括參數解釋、函數樣本等。
在SLS DSL加工邏輯中,日誌中的所有值都以字串的形式儲存,需要根據情境對資料類型進行轉換。
日誌中時間主要有以下三種資料類型,您可以根據本文提供的日期時間函數進行日期時間格式轉換。
字串
例如2022/07/03 02-41-26。
Unix時間戳記
例如1559500886。
日期時間對象
例如2022-07-01 10:10:10+08:00或者2022-07-01 10:10:10。
Unix時間戳記本質上也是字串。
本文的日期時間函數中,除dt_parse
、dt_str
和dt_parsetimestamp
函數支援以上三種資料類型作為參數,其他函數均需要保證參數類型的一致性。
函數列表
類型 | 函數 | 說明 |
通用日期時間轉換 | 將值或時間運算式的值轉換為日期時間對象。 | |
將值或時間運算式的值轉換為字串。 | ||
將值或時間運算式的值轉換為Unix時間戳記。 | ||
擷取值或時間運算式值的特定屬性,包括所屬day、year等。 | ||
擷取日期時間 | 擷取當前日期時間對象。 | |
擷取當前日期,不含時間。 | ||
擷取當前時區的當前日期時間對象。 | ||
將Unix時間戳記轉換為日期時間對象。 | ||
將Unix時間戳記轉換為當前時區的日期時間對象。 | ||
將時間字串解析為日期時間對象。 | ||
擷取Unix時間戳記 | 擷取當前Unix時間戳記。 | |
將日期時間對象轉換為Unix時間戳記。 | ||
擷取日期時間字串 | 將日期時間對象按照指定格式轉換為字串。 | |
將Unix時間戳記按照指定格式轉換為字串。 | ||
修改日期時間 | 從值或時間運算式中截取指定的時間粒紋。 | |
根據指定的時間粒紋修改值或時間運算式的值。 | ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
修改日期時區 | 將值或時間運算式的值轉換為特定時區的日期時間對象。 | |
擷取差異 | 按照特定粒度擷取兩個值或時間運算式值的差異值。 |
dt_parse
將值或時間運算式的值轉換為日期時間對象。
函數格式
dt_parse(value, tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
返回結果
返迴轉換後的日期時間對象。
函數樣本
樣本1:將time欄位的值轉化成日期時間。
原始日誌
time: 1559500886
加工規則
e_set("test_time", dt_parse(v("time")))
加工結果
time: 1559500886 test_time: 2019-06-02 18:41:26
樣本2:將time欄位的值轉化成日期時間,時區是上海。
原始日誌
time: 2019-06-01 10:10:10 tz: Asia/Shanghai
加工規則
e_set("test_time", dt_parse(v("time"),tz=v("tz")))
加工結果
time: 2019-06-01 10:10:10 tz: Asia/Shanghai test_time: 2019-06-01 10:10:10+08:00
dt_str
將值或時間運算式的值轉換為字串。
函數格式
dt_str(value, fmt="format_string", tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
fmt
String
否
格式化字串。更多資訊,請參見日期時間格式化指令。預設為空白,則格式保持不變。
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
返回結果
返迴轉換後的時間字串。
函數樣本
樣本1:把time欄位的值轉換成fmt形式,時區東京。
原始日誌
time: 2019-06-03 02:41:26 fmt: %Y/%m/%d %H-%M-%S tz: Asia/Tokyo
加工規則
e_set("dt_str", dt_str(v("time"),fmt=v("fmt"),tz=v("tz")))
加工結果
time: 2019-06-03 02:41:26 fmt: %Y/%m/%d %H-%M-%S tz: Asia/Tokyo dt_str: 2019/06/03 02-41-26
樣本2:把time欄位的值(Unix時間戳記)轉換成fmt形式。
原始日誌
time: 1559500886 fmt: %Y/%m/%d %H-%M-%S
加工規則
e_set("dt_str", dt_str(v("time"),fmt=v("fmt")))
加工結果
time: 1559500886 fmt: %Y/%m/%d %H-%M-%S dt_str: 2019/06/02 18-41-26
樣本3:把time欄位的值轉換成預設形式。
原始日誌
time: 2019-06-03 02:41:26
加工規則
e_set("dt_str", dt_str(v("time")))
加工結果
time: 2019-06-03 02:41:26 dt_str: 2019-06-03 02:41:26
dt_parsetimestamp
將值或時間運算式的值轉換為Unix時間戳記。
函數格式
dt_parsetimestamp(value, tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
返回結果
返迴轉換後的Unix時間戳記。
函數樣本
樣本1:把time欄位的值轉換成時間戳記,時區是東京。
原始日誌
time: 2019-06-03 2:41:26 tz: Asia/Tokyo
加工規則
e_set("dt_parsetimestamp", dt_parsetimestamp(v("time"),v("tz")))
加工結果
time: 2019-06-03 2:41:26 tz: Asia/Tokyo dt_parsetimestamp: 1559497286
樣本2:把time欄位的值轉換成Unix時間戳記。
原始日誌
time: 2019-06-03 2:41:26
加工規則
e_set("dt_parsetimestamp",dt_parsetimestamp(v("time")))
加工結果
time: 2019-06-03 2:41:26 dt_parsetimestamp: 1559529686
樣本3:把time欄位的值轉換成Unix時間戳記。
原始日誌
time: 2019-06-03 02:41:26+8:00
加工規則
e_set("dt_parsetimestamp",dt_parsetimestamp(v("time")))
加工結果
time: 2019-06-03 02:41:26+8:00 dt_parsetimestamp: 1559500886
dt_prop
擷取值或時間運算式值的特定屬性,包括所屬day、year等。
函數格式
dt_prop(value, props)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
props
String
是
需要擷取的時間屬性。 例如屬性名稱為year,則只會輸出年份。 參數值可以為
day
、year
、month
、hour
、second
、minute
、microsecond
、weekday
、weekdayname
、weekdayshortname
、monthname
、monthshortname
、dayofyear
、dayofweek
、weekofyear
、weekofyear_m
、tzname
、weekofmonth
。返回結果
返回提取的屬性。
函數樣本
樣本1:提取time欄位的值的day屬性值。
原始日誌
time: 2018-10-2 09:11:40
加工規則
e_set("dt_parsetimestamp",dt_prop(dt_parse(v("time")),"day"))
加工結果
time: 2018-10-2 09:11:40 dt_parsetimestamp: 2
樣本2:提取time欄位的值的year屬性值。
原始日誌
time: 2018-10-2 09:11:40
加工規則
e_set("dt_parsetimestamp",dt_prop(dt_parse(v("time")),"year"))
加工結果
time: 2018-10-2 09:11:40 dt_parsetimestamp: 2018
樣本3:提取time欄位的值的weekdayname屬性值。
原始日誌
time: 2018-10-2 09:11:40 weekdayname: weekdayname
加工規則
e_set("dt_prop",dt_prop(dt_parse(v("time")),"weekdayname"))
加工結果
time: 2018-10-2 09:11:40 dt_prop: Tuesday
樣本4:提取time欄位的值的weekofyear屬性值。
原始日誌
time: 2018-10-2 09:11:40
加工規則
e_set("dt_prop",dt_prop(dt_parse(v("time")),"weekofyear"))
加工結果
time: 2018-10-2 09:11:40 dt_prop: 39
dt_now
擷取當前日期時間對象。
函數格式
dt_now(tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
返回結果
返回指定時區的時間對象。
函數樣本
擷取目前時間,時區是上海。
原始日誌
tz: Asia/Shanghai
加工規則
e_set("dt_now",dt_now(tz=v("tz")))
加工結果
tz: Asia/Shanghai dt_now: 2022-06-30 11:21:25.111836+08:00
dt_today
擷取當前日期,不含時間。
函數格式
dt_today(tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
返回結果
返回指定時區的日期對象。
函數樣本
擷取當前日期,不含時間。
原始日誌
無
加工規則
e_set("dt_today", dt_today())
加工結果
dt_today: 2022-06-30 00:00:00
dt_utcnow
擷取當前時區的當前日期時間對象。
函數格式
dt_utcnow()
參數說明
無。
返回結果
返回目前時間的目前時間對象。
函數樣本
擷取當前時區的目前時間。
原始日誌
無
加工規則
e_set("dt_utcnow",dt_utcnow())
加工結果
dt_utcnow:2022-06-30 03:33:56.614005
dt_fromtimestamp
將Unix時間戳記轉換為日期時間對象。
函數格式
dt_fromtimestamp(value, tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
值或時間運算式。
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
返回結果
返迴轉換後的日期時間。
函數樣本
樣本1:把time欄位的值轉化成日期時間對象。
原始日誌
time: 1559500886
加工規則
e_set("dt_fromtimestamp",dt_fromtimestamp(v("time")))
加工結果
time: 1559500886 dt_fromtimestamp: 2019-06-02 18:41:26
樣本2:把time欄位的值轉化成日期時間對象,時區上海。
原始日誌
time: 1559500886 tz: Asia/Shanghai
加工規則
e_set("dt_fromtimestamp",dt_fromtimestamp(v("time"),tz=v("tz")))
加工結果
time: 1559500886 tz: Asia/Shanghai dt_fromtimestamp: 2019-06-03 02:41:26+08:00
dt_utcfromtimestamp
將Unix時間戳記轉換為當前時區的日期時間對象。
函數格式
dt_utcfromtimestamp(value)
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
值或時間運算式。
返回結果
返迴轉換後的日期時間對象。
函數樣本
原始日誌
time: 1559500886
加工規則
e_set("dt_utcfromtimestamp",dt_utcfromtimestamp(v("time")))
加工結果
time: 1559500886 dt_utcfromtimestamp: 2019-06-02 18:41:26
dt_strptime
將時間字串解析為日期時間對象。
函數格式
dt_strptime(value, "format_string")
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
值或時間運算式。
fmt
String
否
格式化字串。更多資訊,請參見日期時間格式化指令。
返回結果
返回解析後的日期時間對象。
函數樣本
原始日誌
time: 2019/06/03 02-41-26 fmt: %Y/%m/%d %H-%M-%S
加工規則
e_set("dt_strptime",dt_strptime(v("time"),v("fmt")))
加工結果
time: 2019/06/03 02-41-26 fmt: %Y/%m/%d %H-%M-%S dt_strptime: 2019-06-03 02:41:26
dt_currentstamp
擷取當前Unix時間戳記。
函數格式
dt_currentstamp(value, normalize='floor')
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
值或時間運算式。
normalize
String
否
計算結果數字格式。參數取值為:
floor
(預設值):向下取整。int
:取整。round
:四捨五入。ceil
:向上取整。
返回結果
返回當前Unix時間戳記。
函數樣本
原始日誌
無
加工規則
e_set("dt_currentstamp",dt_currentstamp())
加工結果
dt_currentstamp: 1656560437
dt_totimestamp
將日期時間對象轉換為Unix時間戳記。
函數格式
dt_totimestamp(timeexpression)
參數說明
參數名稱
參數類型
是否必填
說明
timeexpression
日期時間對象
是
需要被轉換的日期時間對象。
返回結果
返迴轉換後的Unix時間戳記。
函數樣本
原始日誌
time: 2019-06-03 2:41:26
加工規則
e_set("dt_totimestamp",dt_totimestamp(dt_parse(v("time"))))
加工結果
time: 2019-06-03 2:41:26 dt_totimestamp: 1559529686
dt_strftime
將日期時間對象按照指定格式轉換為字串。
函數格式
dt_strftime(timeexpression, "format_string")
參數說明
參數名稱
參數類型
是否必填
說明
timeexpression
日期時間對象
是
需要被轉換的日期時間對象。
format_string
String
是
格式化字串。更多資訊,請參見日期時間格式化指令。
返回結果
返回格式化後的字串。
函數樣本
將time欄位的值按照fmt格式轉換。
原始日誌
time: 2019-06-03 2:41:26 fmt: %Y/%m/%d %H-%M-%S
加工規則
e_set("dt_strftime",dt_strftime(dt_parse(v("time")),v("fmt")))
加工結果
time: 2019-06-03 2:41:26 fmt: %Y/%m/%d %H-%M-%S dt_strftime: 2019/06/03 02-41-26
dt_strftimestamp
將Unix時間戳記按照指定格式轉換為字串。
函數格式
dt_strftimestamp(value, fmt="format_string", tz=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
String
是
需要被轉換的Unix時間戳記。
fmt
String
是
格式化字串。更多資訊,請參見日期時間格式化指令。
tz
String
否
表示時區,預設為None,使用零時區。更多資訊,請參見時區列表。
返回結果
返回格式化後的字串。
函數樣本
樣本1
原始日誌
time: 1559500886 fmt: %Y/%m/%d %H-%M-%S
加工規則
e_set("dt_strftimestamp",dt_strftimestamp(v("time"),v("fmt")))
加工結果
time: 1559500886 fmt: %Y/%m/%d %H-%M-%S dt_strftimestamp: 2019/06/02 18-41-26
樣本2
原始日誌
time: 1559500886 fmt: %Y/%m/%d %H-%M-%S tz: Asia/Tokyo
加工規則
e_set("dt_strftimestamp",dt_strftimestamp(v("time"),v("fmt"),v("tz")))
加工結果
dt_strftimestamp:2019/06/03 03-41-26 fmt:%Y/%m/%d %H-%M-%S time:1559500886 tz:Asia/Tokyo
dt_truncate
從值或時間運算式中截取指定的時間粒紋。
函數格式
dt_truncate(value, unit='day')
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
unit
String
是
需要擷取的時間屬性粒度。 預設為day。可選
second
、minute
、<num>_minute
(例如:5_minute, 19_minute, 2_minute等)、hour
、day
、week
、month
、quarter
、half_year
、year
。返回結果
返回提取的特定時間粒紋。
函數樣本
樣本1
原始日誌
time: 2019-06-03 2:41:26 unit: year
加工規則
e_set("dt_truncate",dt_truncate(v("time"),v("unit")))
加工結果
time: 2019-06-03 2:41:26 unit: year dt_truncate: 2019-01-01 00:00:00
樣本2
原始日誌
time: 2019-06-03 2:41:26 unit: hour
加工規則
e_set("dt_truncate",dt_truncate(v("time"),v("unit")))
加工結果
time: 2019-06-03 2:41:26 unit: hour dt_truncate: 2019-06-03 02:00:00
dt_add
根據指定的時間粒紋修改值或時間運算式的值。
函數格式
dt_add(value, dt1=None, dt2=None, year(s)=None, month(s)=None, day(s)=None, hour(s)=None, minute(s)=None, second(s)=None, microsecond(s)=None, week(s)=None, weekday=None)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
日期時間運算式。
dt1
字串、Unix時間戳記或日期時間對象
否
日期時間運算式,預設為None。
dt2
字串、Unix時間戳記或日期時間對象
否
日期時間運算式,預設為None。
year/years
Number
否
year:表示需要替換的年份,例如
year=2020
,預設為None。years:表示需要增加年份的數量,如
years=1
表示在原來year的基礎上再增加一年。
day/days
Number
否
day:表示需要替換的天,例如
day=1
,預設為None。days:表示需要增加天的數量,如
days=1
表示在原來day的基礎上加一天。
hour/hours
Number
否
hour:表示需要替換的小時,例如
hour=1
,預設為None。hours:表示需要增加小時的數量,如
hours=1
表示在原來hour的基礎上加一小時。
minute/minutes
Number
否
minute:表示需要替換的分鐘,例如
minute=1
,預設為None。minutes:表示需要增加分鐘的數量,如
minutes=1
表示在原來minute的基礎上加一分鐘。
second/seconds
Number
否
second:表示需要替換的秒數,例如
second=1
,預設為None。seconds:表示需要增加秒的數量,如
seconds=1
表示在原來second的基礎上加一秒鐘。
microsecond/microseconds
Number
否
microsecond:表示需要替換的毫秒數,例如
microsecond=1
,預設為None。microseconds:表示需要增加毫秒的數量,
microseconds=1
表示在原來microsecond的基礎上加一毫秒。
week/weeks
Number
否
week:表示需要位移的周數,例如
week=1
,預設為None。weeks:表示需要增加周的數量,
weeks=1
表示在原來week的基礎上加一周。
weekday
Number
否
表示需要位移的工作日,例如
weekday=dt_MO(1)
,預設為None。返回結果
返回修改後的時間運算式。
函數樣本
樣本1
原始日誌
dt: 2018-10-10 1:2:3 dt1: 2018-11-3 11:12:13 dt2: 2018-10-1 10:10:10
加工規則
e_set("dt_add",dt_add(dt_parse(v("dt")), dt1=dt_parse(v("dt1")), dt2=dt_parse(v("dt2"))))
加工結果
dt:2018-10-10 1:2:3 dt1:2018-11-3 11:12:13 dt2:2018-10-1 10:10:10 dt_add:2018-11-12 02:04:06
樣本2
原始日誌
dt: 2018-10-11 02:03:04 year: 2019
加工規則
e_set("dt_add", dt_add(dt_parse(v("dt")), year=ct_int(v("year"))))
加工結果
dt:2018-10-11 02:03:04 dt_add:2019-10-11 02:03:04 year:2019
dt_MO
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期一的位移量。
函數格式
dt_MO(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
原始日誌
time: 2019-08-13 02:03:04
加工規則
e_set("dt_MO",dt_add(v("time"),weekday=dt_MO(1)))
加工結果
time: 2019-08-13 02:03:04 dt_MO: 2019-08-19 02:03:04
dt_TU
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期二的位移量。
函數格式
dt_TU(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
請參見dt_MO函數樣本。
dt_WE
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期三的位移量。
函數格式
dt_WE(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
請參見dt_MO函數樣本。
dt_TH
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期四的位移量。
函數格式
dt_TH(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
請參見dt_MO函數樣本。
dt_FR
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期五的位移量。
函數格式
dt_FR(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
請參見dt_MO函數樣本。
dt_SA
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期六的位移量。
函數格式
dt_SA(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
請參見dt_MO函數樣本。
dt_SU
dt_add
函數中傳遞給weekday
參數的值,用於表示特定星期日的位移量。
函數格式
dt_SU(Integer_or_negative)
參數說明
參數名稱
參數類型
是否必填
說明
Integer_or_negative
Number
是
傳入位移量。如果需要傳入負數,請使用
op_neg(positive)
。例如-1用op_neg(1)
表示。返回結果
返回位移後的時間。
函數樣本
請參見dt_MO函數樣本。
dt_astimezone
將值或時間運算式的值轉換為特定時區的日期時間對象。
函數格式
dt_astimezone(value, tz, reset=False)
參數說明
參數名稱
參數類型
是否必填
說明
value
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
tz
String
否
表示時區,預設為None。更多資訊,請參見時區列表。
reset
Bool
否
表示是否對時區重新設定,預設為False表示不設定。如果為True則返回原時間加上設定的時區。
返回結果
返回特定時區的日期時間對象。
函數樣本
樣本1
原始日誌
time: 2019-06-03 2:41:26 tz: UTC
加工規則
e_set("dt_astimezone",dt_astimezone(dt_parse(v("time")), v("tz")))
加工結果
time: 2019-06-03 2:41:26 tz: UTC dt_astimezone: 2019-06-03 02:41:26+00:00
樣本2
原始日誌
time: 2019-06-01 10:10:10+10:00 tz: Asia/Tokyo
加工規則
e_set("dt_astimezone",dt_astimezone(v("time"), v("tz"),reset=True))
加工結果
time: 2019-06-01 10:10:10+10:00 tz: Asia/Tokyo dt_astimezone: 2019-06-01 10:10:10+09:00
樣本3
原始日誌
time: 2019-06-01 10:10:10+08:00 tz: Asia/Tokyo
加工規則
e_set("dt_astimezone",dt_astimezone(v("time"), v("tz"),reset=False)) e_set("dt_astimezone_true",dt_astimezone(v("time"), v("tz"),reset=True))
加工結果
dt_astimezone:2019-06-01 11:10:10+09:00 dt_astimezone_true:2019-06-01 10:10:10+09:00 time:2019-06-01 10:10:10+08:00 tz:Asia/Tokyo
dt_diff
按照特定粒度擷取兩個值或時間運算式值的差異值。
函數格式
dt_diff(value1, value2, unit='second', normalize='floor')
參數說明
參數名稱
參數類型
是否必填
說明
value1
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
value2
字串、Unix時間戳記或日期時間對象
是
值或時間運算式。
unit
String
否
按照輸入時間屬性返回,預設
second
。也可以是microsecond
、millisecond
、minutes
、hours
、day
等。normalize
String
否
計算結果數字格式。取值為:
floor
(預設值):向下取整。int
:取整。round
:保留N位小數。ceil
:向上取整。
返回結果
返回按照特定粒度擷取的兩個值的差異值。
函數樣本
樣本1:對time1和time2欄位的值,按照秒計算差異值。
原始日誌
time1: 2018-10-1 10:10:10 time2: 2018-10-1 10:10:10
加工規則
e_set("diff",dt_diff(v("time1"), v("time2")))
加工結果
time1: 2018-10-1 10:10:10 time2: 2018-10-1 10:10:10 diff: 0
樣本2:對time1和time2欄位的值,按照秒計算差異值。
原始日誌
time1: 2018-10-1 11:10:10 time2: 2018-10-1 10:10:10
加工規則
e_set("diff",dt_diff(v("time1"), v("time2")))
加工結果
time1: 2018-10-1 11:10:10 time2: 2018-10-1 10:10:10 diff: 3600
樣本3:對time1和time2欄位的值,按照微秒計算差異值。
原始日誌
time1: 2018-10-1 11:10:11 time2: 2018-10-1 10:10:10 unit: microsecond
加工規則
e_set("diff",dt_diff(v("time1"), v("time2"),v("unit")))
加工結果
diff:3601000000 time1:2018-10-1 11:10:11 time2:2018-10-1 10:10:10 unit:microsecond
樣本4:對time1和time2欄位的值,按照分鐘計算差異值,向下取整。
原始日誌
time1: 2018-10-1 11:11:59 time2: 2018-10-1 10:10:00 unit: minute normalize: floor
加工規則
e_set("diff", dt_diff(v("time1"), v("time2"), v("unit"), v("normalize")))
加工結果
diff:61 normalize:floor time1:2018-10-1 11:11:59 time2:2018-10-1 10:10:00 unit:minute
樣本5:對time1和time2欄位的值,按照秒計算差異值,向下取整。
原始日誌
time1: 10:00:00 time2: 11:00:00 unit: second normalize: floor
加工規則
e_set("diff", dt_diff(v("time1"), v("time2"), v("unit"), v("normalize")))
加工結果
diff:-3600 normalize:floor time1:10:00:00 time2:11:00:00 unit:second