跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

日期修饰符

概述​

StackQL 日期时间函数中的日期或时间值之后可以跟零个或多个修饰符,用于更改日期和/或时间。每个修饰符都是一种转换,应用于其左侧的时间值。修饰符按从左到右的顺序应用。可用的修饰符如下:

修饰符说明
NNN day(s)为日期和时间加上 ±NNN 天
NNN hour(s)为日期和时间加上 ±NNN 小时
NNN minute(s)为日期和时间加上 ±NNN 分钟
NNN[.NNNN] second(s)为日期和时间加上或减去 ±NNN 秒
NNN month(s)为日期和时间加上 ±NNN 个月
NNN year(s)为日期和时间加上 ±NNN 年
start of month回退到当月的开始
start of year回退到当年的开始
start of day回退到当天的开始
weekday N将日期推进到下一个星期编号为 N 的日期
localtime返回本地时间
utc返回 UTC 时间
unixepochUnix 时间

示例​

使用 now 修饰符返回当前日期和时间​

SELECT name, date('now') as date, time('now') as time
FROM google.storage.buckets WHERE project = 'stackql';

使用 localtime 修饰符将 UTC 转换为本地时间​

SELECT name, timeCreated,
datetime(timeCreated, 'localtime') as local_time_created
FROM google.storage.buckets WHERE project = 'stackql';

将日期时间转换为 UTC​

SELECT name, timeCreated,
datetime('now', 'utc') as now_utc
FROM google.storage.buckets WHERE project = 'stackql';

计算相对于另一个日期的日期​

SELECT name, timeCreated,
datetime(timeCreated, '+24 hours') as a_day_later
FROM google.storage.buckets WHERE project = 'stackql';

获取给定日期之后的下一个指定星期几​

SELECT name, timeCreated,
datetime(timeCreated, 'weekday 0') as following_sunday
FROM google.storage.buckets WHERE project = 'stackql';

获取给定日期的月初​

SELECT name, timeCreated,
datetime(timeCreated, 'start of month') as start_of_month
FROM google.storage.buckets WHERE project = 'stackql';

将 Unix 时间戳转换为日期时间​

SELECT datetime(1576417943, 'unixepoch') as date_from_ts
FROM google.storage.buckets WHERE project = 'stackql';
提示

要将日期时间转换为 Unix 纪元时间戳,请参阅 STRFTIME。要计算两个日期时间对象之间的差值,请参阅 STRFTIME 或 JULIANDAY。