Unix时间戳定义
Unix时间戳(Unix timestamp),定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。
PQ没有直接转换时间戳的函数,但可通过自定义函数实现。
时间转时间戳
当前日期时间转10位时间戳
timestamp = Text.From(Number.Round(Duration.TotalSeconds(DateTime.LocalNow()-#datetime(1970,1,1,8,0,0)),0)),
当前日期时间转13位时间戳
timestamp = Text.From(Number.Round(Duration.TotalSeconds(DateTime.LocalNow()-#datetime(1970,1,1,8,0,0))*1000,0)),
let
date_time = DateTime.FromText("2021-06-07T02:14:17.951Z"),
timestamp=Text.From(Number.Round(Duration.TotalSeconds(date_time-#datetime(1970,1,1,8,0,0))*1000,0))
in
timestamp
(date_time as text) =>
try
let
date_time = DateTime.FromText(x),
timestamp=Text.From(Number.Round(Duration.TotalSeconds(date_time-#datetime(1970,1,1,8,0,0))*1000,0))
in
timestamp
otherwise null
时间戳转时间
10位时间戳转日期时间
(x)=>
let
time = #datetime(1970,1,1,8,0,0)+#duration(0,0,0,x)
in
time
let
timestamp = (x)=>#datetime(1970,1,1,8,0,0)+#duration(0,0,0,x),
time = timestamp(1502374503)
in
time