时间函数 - 即时类型
时间函数允许创建和操作每种时间类型 — `DATE`、`ZONED TIME`、`LOCAL TIME`、`ZONED DATETIME` 和 `LOCAL DATETIME` 的值。
本页面包含以下函数
DATE |
ZONED DATETIME |
LOCAL DATETIME |
LOCAL TIME |
ZONED TIME |
|---|---|---|---|---|
|
另请参阅 时间(日期/时间)值 和 时间运算符。 |
时间即时类型
时间即时类型创建概述
每个函数都与其对应的类型同名,并以以下四种方式之一构建该类型
-
捕获当前时间。
-
组合类型的组件。
-
解析时间值的
STRING表示形式。 -
通过以下方式从另一个时间值中选择和组合组件
-
要么组合时间值(例如将
DATE与ZONED TIME组合以创建ZONED DATETIME),或者 -
从时间值中选择部分(例如从
ZONED DATETIME中选择DATE);*提取器* — 可以选择的组件组 — 是-
date— 包含DATE的所有组件(概念上为*年*、*月*和*日*)。 -
time— 包含ZONED TIME的所有组件(*小时*、*分钟*、*秒*以及毫秒、微秒和纳秒等子秒)。如果正在创建的类型和从中选择时间组件的类型都包含timezone(且未明确指定timezone),则也会选择该timezone。 -
datetime— 选择所有组件,对于覆盖特定组件很有用。与time类似,如果正在创建的类型和从中选择时间组件的类型都包含timezone(且未明确指定timezone),则也会选择该timezone。
-
-
实际上,这允许在不同时间类型之间进行*转换*,并允许指定“缺失”的组件。
-
| 函数 | DATE |
ZONED TIME |
LOCAL TIME |
ZONED DATETIME |
LOCAL DATETIME |
|---|---|---|---|---|---|
获取当前值。 |
|||||
创建基于日历(年月日)的值。 |
|||||
创建基于周(年周日)的值。 |
|||||
创建基于季度(年季度日)的值。 |
|||||
创建序数(年日)值。 |
|||||
从时间组件创建值。 |
|||||
使用提取器从其他时间值创建值(即在不同类型之间转换)。 |
|||||
从 |
|||||
从时间戳创建值。 |
|
所有时间即时类型 — 包括那些不包含时区信息支持的类型,如 |
控制使用哪个时钟
基于当前即时值创建时间即时值的函数默认使用 statement 时钟。但是,有三种不同的时钟可用于更精细的控制
-
transaction:在同一事务中,每次调用都会生成相同的即时值。不同事务可能会生成不同的时间。 -
statement:在同一语句中,每次调用都会生成相同的即时值。在同一事务中,不同语句可能会生成不同的时间。 -
realtime:生成的即时值将是系统的实时时钟。
下表列出了创建当前时间即时值时用于指定时钟的不同子函数
| 类型 | 默认 | 事务 | 语句 | 实时 |
|---|---|---|---|---|
Date |
||||
Time |
||||
LocalTime |
||||
DateTime |
||||
LocalDateTime |
截断时间值
可以通过在指定组件边界(即*截断单位*)处,将另一个时间即时值截断到最近的先前时间点来创建时间即时值。以这种方式创建的时间即时值,所有小于指定截断单位的组件都将设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将覆盖这些较小组件原本会设置的默认值。
下表列出了支持的截断单位及对应的子函数
| 截断单位 | DATE |
ZONED TIME |
LOCAL TIME |
ZONED DATETIME |
LOCAL DATETIME |
|---|---|---|---|---|---|
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
date()
语法 |
|
||
描述 |
创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
可以是时间值的字符串表示形式,包含单个键 'timezone' 的映射,或者包含时间值('date'、'year'、'month'、'day'、'week'、'dayOfWeek'、'quarter'、'dayOfQuarter'、'ordinalDay')作为组件的映射。 |
|
返回 |
|
||
| 名称 | 描述 |
|---|---|
|
一个 |
|
由至少四位数字组成的表达式,指定年份。 |
|
指定月份的整数,介于 |
|
指定月份中日期的整数,介于 |
|
指定周数的整数,介于 |
|
指定星期几的整数,介于 |
|
指定季度的整数,介于 |
|
指定季度中日期的整数,介于 |
|
指定一年中序数日的整数,介于 |
如果未提供参数,则必须调用 |
如果未指定时区,将使用本地时区。 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
时间值的字符串表示形式必须符合为 日期 定义的格式。 |
时间值的字符串表示形式必须表示有效日期;即表示 |
|
如果提供了任何可选参数,它们将覆盖 |
|
RETURN date() AS currentDate
返回当前日期。
| currentDate |
|---|
|
行数: 1 |
RETURN date({timezone: 'America/Los Angeles'}) AS currentDateInLA
返回加利福尼亚州的当前日期。
| currentDateInLA |
|---|
|
行数: 1 |
创建 DATE 值
DATEUNWIND [
date({year: 1984, month: 10, day: 11}),
date({year: 1984, month: 10}),
date({year: 1984})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
行数: 3 |
DATEUNWIND [
date({year: 1984, week: 10, dayOfWeek: 3}),
date({year: 1984, week: 10}),
date({year: 1984})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
行数: 3 |
DATEUNWIND [
date({year: 1984, quarter: 3, dayOfQuarter: 45}),
date({year: 1984, quarter: 3}),
date({year: 1984})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
行数: 3 |
DATEUNWIND [
date({year: 1984, ordinalDay: 202}),
date({year: 1984})
] AS theDate
RETURN theDate
返回 1984年2月11日 对应的日期。
| theDate |
|---|
|
|
行数: 2 |
DATEUNWIND [
date({year: 1984, month: 11, day: 11}),
localdatetime({year: 1984, month: 11, day: 11, hour: 12, minute: 31, second: 14}),
datetime({year: 1984, month: 11, day: 11, hour: 12, timezone: '+01:00'})
] AS dd
RETURN date({date: dd}) AS dateOnly, date({date: dd, day: 28}) AS dateDay
| dateOnly | +dateDay |
|---|---|
|
|
|
|
|
|
行数: 3 |
|
STRING 创建 DATEUNWIND [
date('2015-07-21'),
date('2015-07'),
date('201507'),
date('2015-W30-2'),
date('2015202'),
date('2015')
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
|
|
行数: 6 |
date.realtime()
语法 |
|
||
描述 |
使用实时时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
返回的 DATE 将是系统的实时时钟。
RETURN date.realtime() AS currentDate
| currentDate |
|---|
|
行数: 1 |
RETURN date.realtime('America/Los Angeles') AS currentDateInLA
| currentDateInLA |
|---|
|
行数: 1 |
date.statement()
语法 |
|
||
描述 |
使用语句时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一语句中,每次调用都会返回相同的 DATE 值。但在同一事务中,不同语句可能会产生不同的值。
RETURN date.statement() AS currentDate
| currentDate |
|---|
|
行数: 1 |
date.transaction()
语法 |
|
||
描述 |
使用事务时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一事务中,每次调用都会返回相同的 DATE 值。但不同事务可能会产生不同的值。
RETURN date.transaction() AS currentDate
| currentDate |
|---|
|
行数: 1 |
date.truncate()
语法 |
|
||
描述 |
使用指定单位将给定时间值截断为 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:'day'、'week'、'month'、'weekYear'、'quarter'、'year'、'decade'、'century'、'millennium'。 |
|
|
|
要截断的日期,使用 `ZONED DATETIME`、`LOCAL DATETIME` 或 `DATE`。 |
|
|
|
截断时要保留的、小于 |
|
返回 |
|
||
date.truncate() 返回通过在指定组件边界(由作为函数参数传入的截断单位表示)处将指定时间即时值截断到最近的先前时间点所获得的 DATE 值。换句话说,返回的 DATE 的所有小于指定截断单位的组件都将设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将*覆盖*这些较小组件原本会设置的默认值。例如,当截断单位 STRING 是 'year' 时,可以提供具有某个值 x 的 day,以确保返回值的*日*被设置为 x,而不是默认的*日*(即 1)。
|
任何未包含在 |
如果未提供 |
如果未提供 |
WITH
datetime({
year: 2017, month: 11, day: 11,
hour: 12, minute: 31, second: 14, nanosecond: 645876123,
timezone: '+01:00'
}) AS d
RETURN
date.truncate('millennium', d) AS truncMillenium,
date.truncate('century', d) AS truncCentury,
date.truncate('decade', d) AS truncDecade,
date.truncate('year', d, {day: 5}) AS truncYear,
date.truncate('weekYear', d) AS truncWeekYear,
date.truncate('quarter', d) AS truncQuarter,
date.truncate('month', d) AS truncMonth,
date.truncate('week', d, {dayOfWeek: 2}) AS truncWeek,
date.truncate('day', d) AS truncDay
| truncMillenium | truncCentury | truncDecade | truncYear | truncWeekYear | truncQuarter | truncMonth | truncWeek | truncDay |
|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
行数: 1 |
||||||||
datetime()
语法 |
|
||
描述 |
创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
可以是时间值的字符串表示形式,包含单个键 'timezone' 的映射,或者包含时间值('year'、'month'、'day'、'hour'、'minute'、'second'、'millisecond'、'microsecond'、'nanosecond'、'timezone')作为组件的映射。 |
|
返回 |
|
||
| 名称 | 描述 |
|---|---|
|
由至少四位数字组成的表达式,指定年份。 |
|
指定月份的整数,介于 |
|
指定月份中日期的整数,介于 |
|
指定一天中小时数的整数,介于 |
|
指定分钟数的整数,介于 |
|
指定秒数的整数,介于 |
|
指定毫秒数的整数,介于 |
|
指定微秒数的整数,介于 |
|
指定纳秒数的整数,介于 |
|
指定时区的表达式。 |
|
表示从 UNIX 纪元开始在 UTC 时区的秒数的数值。 |
|
表示从 UNIX 纪元开始在 UTC 时区的毫秒数的数值。 |
如果未提供参数,则必须调用 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
任何缺失的 |
如果省略 |
如果 |
集合 |
只有在也指定了 |
时间值的字符串表示形式必须表示有效日期;即表示 |
如果提供了任何可选参数,它们将覆盖 |
|
选择 |
选择 |
选择 |
|
|
RETURN datetime() AS currentDateTime
返回使用本地时区的当前日期和时间。
| currentDateTime |
|---|
|
行数: 1 |
RETURN datetime({timezone: 'America/Los Angeles'}) AS currentDateTimeInLA
返回加利福尼亚州的当前日期和时间。
| currentDateTimeInLA |
|---|
|
行数: 1 |
创建 ZONED DATETIME 值
ZONED DATETIMEUNWIND [
datetime({year: 1984, month: 10, day: 11, hour: 12, minute: 31, second: 14, millisecond: 123, microsecond: 456, nanosecond: 789}),
datetime({year: 1984, month: 10, day: 11, hour: 12, minute: 31, second: 14, millisecond: 645, timezone: '+01:00'}),
datetime({year: 1984, month: 10, day: 11, hour: 12, minute: 31, second: 14, nanosecond: 645876123, timezone: 'Europe/Stockholm'}),
datetime({year: 1984, month: 10, day: 11, hour: 12, minute: 31, second: 14, timezone: '+01:00'}),
datetime({year: 1984, month: 10, day: 11, hour: 12, minute: 31, second: 14}),
datetime({year: 1984, month: 10, day: 11, hour: 12, minute: 31, timezone: 'Europe/Stockholm'}),
datetime({year: 1984, month: 10, day: 11, hour: 12, timezone: '+01:00'}),
datetime({year: 1984, month: 10, day: 11, timezone: 'Europe/Stockholm'})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
|
|
|
|
行数: 8 |
ZONED DATETIMEUNWIND [
datetime({year: 1984, week: 10, dayOfWeek: 3, hour: 12, minute: 31, second: 14, millisecond: 645}),
datetime({year: 1984, week: 10, dayOfWeek: 3, hour: 12, minute: 31, second: 14, microsecond: 645876, timezone: '+01:00'}),
datetime({year: 1984, week: 10, dayOfWeek: 3, hour: 12, minute: 31, second: 14, nanosecond: 645876123, timezone: 'Europe/Stockholm'}),
datetime({year: 1984, week: 10, dayOfWeek: 3, hour: 12, minute: 31, second: 14, timezone: 'Europe/Stockholm'}),
datetime({year: 1984, week: 10, dayOfWeek: 3, hour: 12, minute: 31, second: 14}),
datetime({year: 1984, week: 10, dayOfWeek: 3, hour: 12, timezone: '+01:00'}),
datetime({year: 1984, week: 10, dayOfWeek: 3, timezone: 'Europe/Stockholm'})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
|
|
|
行数: 7 |
ZONED DATETIMEUNWIND [
datetime({year: 1984, quarter: 3, dayOfQuarter: 45, hour: 12, minute: 31, second: 14, microsecond: 645876}),
datetime({year: 1984, quarter: 3, dayOfQuarter: 45, hour: 12, minute: 31, second: 14, timezone: '+01:00'}),
datetime({year: 1984, quarter: 3, dayOfQuarter: 45, hour: 12, timezone: 'Europe/Stockholm'}),
datetime({year: 1984, quarter: 3, dayOfQuarter: 45})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
行数: 4 |
ZONED DATETIMEUNWIND [
datetime({year: 1984, ordinalDay: 202, hour: 12, minute: 31, second: 14, millisecond: 645}),
datetime({year: 1984, ordinalDay: 202, hour: 12, minute: 31, second: 14, timezone: '+01:00'}),
datetime({year: 1984, ordinalDay: 202, timezone: 'Europe/Stockholm'}),
datetime({year: 1984, ordinalDay: 202})
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
行数: 4 |
STRING 创建 ZONED DATETIMEUNWIND [
datetime('2015-07-21T21:40:32.142+0100'),
datetime('2015-W30-2T214032.142Z'),
datetime('2015T214032-0100'),
datetime('20150721T21:40-01:30'),
datetime('2015-W30T2140-02'),
datetime('2015202T21+18:00'),
datetime('2015-07-21T21:40:32.142[Europe/London]'),
datetime('2015-07-21T21:40:32.142-04[America/New_York]')
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
|
|
|
|
行数: 8 |
ZONED DATETIME以下查询展示了 datetime({date [, year, ..., timezone]}) 的各种用法。
WITH date({year: 1984, month: 10, day: 11}) AS dd
RETURN
datetime({date: dd, hour: 10, minute: 10, second: 10}) AS dateHHMMSS,
datetime({date: dd, hour: 10, minute: 10, second: 10, timezone:'+05:00'}) AS dateHHMMSSTimezone,
datetime({date: dd, day: 28, hour: 10, minute: 10, second: 10}) AS dateDDHHMMSS,
datetime({date: dd, day: 28, hour: 10, minute: 10, second: 10, timezone:'Pacific/Honolulu'}) AS dateDDHHMMSSTimezone
| dateHHMMSS | dateHHMMSSTimezone | dateDDHHMMSS | dateDDHHMMSSTimezone |
|---|---|---|---|
|
|
|
|
行数: 1 |
|||
ZONED DATETIME以下查询展示了 datetime({time [, year, …, timezone]}) 的各种用法。
WITH time({hour: 12, minute: 31, second: 14, microsecond: 645876, timezone: '+01:00'}) AS tt
RETURN
datetime({year: 1984, month: 10, day: 11, time: tt}) AS YYYYMMDDTime,
datetime({year: 1984, month: 10, day: 11, time: tt, timezone:'+05:00'}) AS YYYYMMDDTimeTimezone,
datetime({year: 1984, month: 10, day: 11, time: tt, second: 42}) AS YYYYMMDDTimeSS,
datetime({year: 1984, month: 10, day: 11, time: tt, second: 42, timezone: 'Pacific/Honolulu'}) AS YYYYMMDDTimeSSTimezone
| YYYYMMDDTime | +YYYYMMDDTimeTimezone | YYYYMMDDTimeSS | YYYYMMDDTimeSSTimezone |
|---|---|---|---|
|
|
|
|
行数: 1 |
|||
ZONED DATETIME以下查询展示了 datetime({date, time [, year, ..., timezone]}) 的各种用法;即,组合一个 DATE 和一个 ZONED TIME 值以创建单个 ZONED DATETIME 值。
WITH
date({year: 1984, month: 10, day: 11}) AS dd,
localtime({hour: 12, minute: 31, second: 14, millisecond: 645}) AS tt
RETURN
datetime({date: dd, time: tt}) AS dateTime,
datetime({date: dd, time: tt, timezone: '+05:00'}) AS dateTimeTimezone,
datetime({date: dd, time: tt, day: 28, second: 42}) AS dateTimeDDSS,
datetime({date: dd, time: tt, day: 28, second: 42, timezone: 'Pacific/Honolulu'}) AS dateTimeDDSSTimezone
| dateTime | dateTimeTimezone | dateTimeDDSS | dateTimeDDSSTimezone |
|---|---|---|---|
|
|
|
|
行数: 1 |
|||
ZONED DATETIME以下查询展示了 datetime({datetime [, year, ..., timezone]}) 的各种用法。
WITH
datetime({
year: 1984, month: 10, day: 11,
hour: 12,
timezone: 'Europe/Stockholm'
}) AS dd
RETURN
datetime({datetime: dd}) AS dateTime,
datetime({datetime: dd, timezone: '+05:00'}) AS dateTimeTimezone,
datetime({datetime: dd, day: 28, second: 42}) AS dateTimeDDSS,
datetime({datetime: dd, day: 28, second: 42, timezone: 'Pacific/Honolulu'}) AS dateTimeDDSSTimezone
| dateTime | dateTimeTimezone | dateTimeDDSS | dateTimeDDSSTimezone |
|---|---|---|---|
|
|
|
|
行数: 1 |
|||
epocSeconds) 创建 ZONED DATETIMEdatetime() 返回从 UNIX 纪元开始在 UTC 时区以指定*秒*数或*毫秒*数表示的 ZONED DATETIME 值。
从 UNIX 纪元表示转换为其他时间即时类型可以通过将 ZONED DATETIME 值转换为这些类型之一来实现。
RETURN datetime({epochSeconds: timestamp() / 1000, nanosecond: 23}) AS theDate
| theDate |
|---|
|
行数: 1 |
epocMillis) 创建 ZONED DATETIMERETURN datetime({epochMillis: 424797300000}) AS theDate
| theDate |
|---|
|
行数: 1 |
datetime.fromEpoch()
语法 |
|
||
描述 |
给定自纪元开始以来的秒数和纳秒数,创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
从 UNIX 纪元开始在 UTC 时区的秒数。 |
|
|
|
从 UNIX 纪元开始在 UTC 时区的纳秒数。此值可以添加到秒数中。 |
|
返回 |
|
||
WITH datetime.fromEpoch(1683000000, 123456789) AS dateTimeFromEpoch
RETURN dateTimeFromEpoch
| dateTimeFromEpoch |
|---|
|
行数: 1 |
datetime.fromEpochMillis()
语法 |
|
||
描述 |
给定自纪元开始以来的毫秒数,创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
从 UNIX 纪元开始在 UTC 时区的毫秒数。 |
|
返回 |
|
||
WITH datetime.fromEpochMillis(1724198400000) AS dateTimeFromMillis
RETURN dateTimeFromMillis
| dateTimeFromMillis |
|---|
|
行数: 1 |
datetime.realtime()
语法 |
|
||
描述 |
使用实时时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
返回的 ZONED DATETIME 将是系统的实时时钟。
RETURN datetime.realtime() AS currentDateTime
| currentDateTime |
|---|
|
行数: 1 |
datetime.statement()
语法 |
|
||
描述 |
使用语句时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一语句中,每次调用都会返回相同的 ZONED DATETIME 值。但在同一事务中,不同语句可能会产生不同的值。
RETURN datetime.statement() AS currentDateTime
| currentDateTime |
|---|
|
行数: 1 |
datetime.transaction()
语法 |
|
||
描述 |
使用事务时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一事务中,每次调用都会返回相同的 ZONED DATETIME 值。但在不同事务中,不同语句可能会产生不同的值。
RETURN datetime.transaction() AS currentDateTime
| currentDateTime |
|---|
|
行数: 1 |
RETURN datetime.transaction('America/Los Angeles') AS currentDateTimeInLA
| currentDateTimeInLA |
|---|
|
行数: 1 |
datetime.truncate()
语法 |
|
||
描述 |
使用指定单位将给定时间值截断为 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:'microsecond'、'millisecond'、'second'、'minute'、'hour'、'day'、'week'、'month'、'weekYear'、'quarter'、'year'、'decade'、'century'、'millennium'。 |
|
|
|
要截断的日期,使用 `ZONED DATETIME`、`LOCAL DATETIME` 或 `DATE`。 |
|
|
|
截断时要保留的、小于 |
|
返回 |
|
||
datetime.truncate() 返回通过在指定组件边界(由作为函数参数传入的截断单位表示)处将指定时间即时值截断到最近的先前时间点所获得的 ZONED DATETIME 值。换句话说,返回的 ZONED DATETIME 的所有小于指定截断单位的组件都将设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将*覆盖*这些较小组件原本会设置的默认值。例如,当截断单位 STRING 是 'year' 时,可以提供具有某个值 x 的 day,以确保返回值的*日*被设置为 x,而不是默认的*日*(即 1)。
如果 |
|
如果 |
如果 |
|
任何未包含在 |
如果未提供 |
如果未提供 |
WITH
datetime({
year:2017, month:11, day:11,
hour:12, minute:31, second:14, nanosecond: 645876123,
timezone: '+03:00'
}) AS d
RETURN
datetime.truncate('millennium', d, {timezone: 'Europe/Stockholm'}) AS truncMillenium,
datetime.truncate('year', d, {day: 5}) AS truncYear,
datetime.truncate('month', d) AS truncMonth,
datetime.truncate('day', d, {millisecond: 2}) AS truncDay,
datetime.truncate('hour', d) AS truncHour,
datetime.truncate('second', d) AS truncSecond
| truncMillenium | truncYear | truncMonth | truncDay | truncHour | truncSecond |
|---|---|---|---|---|---|
|
|
|
|
|
|
行数: 1 |
|||||
localdatetime()
语法 |
|
||
描述 |
创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
可以是时间值的字符串表示形式,包含单个键 'timezone' 的映射,或者包含时间值('year'、'month'、'day'、'hour'、'minute'、'second'、'millisecond'、'microsecond'、'nanosecond')作为组件的映射。 |
|
返回 |
|
||
| 名称 | 描述 |
|---|---|
|
|
|
由至少四位数字组成的表达式,指定年份。 |
|
指定月份的整数,介于 |
|
指定月份中日期的整数,介于 |
|
指定一天中小时数的整数,介于 |
|
指定分钟数的整数,介于 |
|
指定秒数的整数,介于 |
|
指定毫秒数的整数,介于 |
|
指定微秒数的整数,介于 |
|
指定纳秒数的整数,介于 |
如果未提供参数,则必须调用 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
如果省略 |
任何缺失的 |
如果 |
集合 |
只有在也指定了 |
时间值的字符串表示形式必须表示有效日期;即表示 |
|
如果提供了任何可选参数,它们将覆盖 |
|
RETURN localdatetime() AS now
返回当前本地日期和时间(即本地时区)。
| now |
|---|
|
行数: 1 |
RETURN localdatetime({timezone: 'America/Los Angeles'}) AS now
返回加利福尼亚州的当前本地日期和时间。
| now |
|---|
|
行数: 1 |
创建 LOCAL DATETIME 值
LOCAL DATETIMERETURN
localdatetime({
year: 1984, month: 10, day: 11,
hour: 12, minute: 31, second: 14, millisecond: 123, microsecond: 456, nanosecond: 789
}) AS theDate
| theDate |
|---|
|
行数: 1 |
LOCAL DATETIMERETURN
localdatetime({
year: 1984, week: 10, dayOfWeek: 3,
hour: 12, minute: 31, second: 14, millisecond: 645
}) AS theDate
| theDate |
|---|
|
行数: 1 |
ZONED DATETIMERETURN
localdatetime({
year: 1984, quarter: 3, dayOfQuarter: 45,
hour: 12, minute: 31, second: 14, nanosecond: 645876123
}) AS theDate
| theDate |
|---|
|
行数: 1 |
LOCAL DATETIMERETURN
localdatetime({
year: 1984, ordinalDay: 202,
hour: 12, minute: 31, second: 14, microsecond: 645876
}) AS theDate
| theDate |
|---|
|
行数: 1 |
STRING 创建 LOCAL DATETIMEUNWIND [
localdatetime('2015-07-21T21:40:32.142'),
localdatetime('2015-W30-2T214032.142'),
localdatetime('2015-202T21:40:32'),
localdatetime('2015202T21')
] AS theDate
RETURN theDate
| theDate |
|---|
|
|
|
|
行数: 4 |
LOCAL DATETIME以下查询展示了 localdatetime({date [, year, ..., nanosecond]}) 的各种用法。
WITH date({year: 1984, month: 10, day: 11}) AS dd
RETURN
localdatetime({date: dd, hour: 10, minute: 10, second: 10}) AS dateHHMMSS,
localdatetime({date: dd, day: 28, hour: 10, minute: 10, second: 10}) AS dateDDHHMMSS
| dateHHMMSS | dateDDHHMMSS |
|---|---|
|
|
行数: 1 |
|
LOCAL DATETIME以下查询展示了 localdatetime({time [, year, ..., nanosecond]}) 的各种用法。
WITH time({hour: 12, minute: 31, second: 14, microsecond: 645876, timezone: '+01:00'}) AS tt
RETURN
localdatetime({year: 1984, month: 10, day: 11, time: tt}) AS YYYYMMDDTime,
localdatetime({year: 1984, month: 10, day: 11, time: tt, second: 42}) AS YYYYMMDDTimeSS
| YYYYMMDDTime | YYYYMMDDTimeSS |
|---|---|
|
|
行数: 1 |
|
LOCAL DATETIME以下查询展示了 localdatetime({date, time [, year, ..., nanosecond]}) 的各种用法;即,组合一个 DATE 和一个 ZONED TIME 值以创建单个 LOCAL DATETIME 值。
WITH
date({year: 1984, month: 10, day: 11}) AS dd,
time({hour: 12, minute: 31, second: 14, microsecond: 645876, timezone: '+01:00'}) AS tt
RETURN
localdatetime({date: dd, time: tt}) AS dateTime,
localdatetime({date: dd, time: tt, day: 28, second: 42}) AS dateTimeDDSS
| dateTime | dateTimeDDSS |
|---|---|
|
|
行数: 1 |
|
LOCAL DATETIME以下查询展示了 localdatetime({datetime [, year, ..., nanosecond]}) 的各种用法。
WITH
datetime({
year: 1984, month: 10, day: 11,
hour: 12,
timezone: '+01:00'
}) AS dd
RETURN
localdatetime({datetime: dd}) AS dateTime,
localdatetime({datetime: dd, day: 28, second: 42}) AS dateTimeDDSS
| dateTime | dateTimeDDSS |
|---|---|
|
|
行数: 1 |
|
localdatetime.realtime()
语法 |
|
||
描述 |
使用实时时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
返回的 LOCAL DATETIME 将是系统的实时时钟。
RETURN localdatetime.realtime() AS now
| now |
|---|
|
行数: 1 |
RETURN localdatetime.realtime('America/Los Angeles') AS nowInLA
| nowInLA |
|---|
|
行数: 1 |
localdatetime.statement()
语法 |
|
||
描述 |
使用语句时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一语句中,每次调用都会返回相同的 LOCAL DATETIME 值。但在同一事务中,不同语句可能会产生不同的值。
RETURN localdatetime.statement() AS now
| now |
|---|
|
行数: 1 |
localdatetime.transaction()
语法 |
|
||
描述 |
使用事务时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一事务中,每次调用都会返回相同的 LOCAL DATETIME 值。但在不同事务中,不同语句可能会产生不同的值。
RETURN localdatetime.transaction() AS now
| now |
|---|
|
行数: 1 |
localdatetime.truncate()
语法 |
|
||
描述 |
使用指定单位将给定时间值截断为 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:'microsecond'、'millisecond'、'second'、'minute'、'hour'、'day'、'week'、'month'、'weekYear'、'quarter'、'year'、'decade'、'century'、'millennium'。 |
|
|
|
要截断的日期,使用 `ZONED DATETIME`、`LOCAL DATETIME` 或 `DATE`。 |
|
|
|
截断时要保留的、小于 |
|
返回 |
|
||
localdatetime.truncate() 返回通过在指定组件边界(由作为函数参数传入的截断单位表示)处将指定时间即时值截断到最近的先前时间点所获得的 LOCAL DATETIME 值。换句话说,返回的 LOCAL DATETIME 的所有小于指定截断单位的组件都将设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将*覆盖*这些较小组件原本会设置的默认值。例如,当截断单位 STRING 是 'year' 时,可以提供具有某个值 x 的 day,以确保返回值的*日*被设置为 x,而不是默认的*日*(即 1)。
如果 |
|
任何未包含在 |
如果未提供 |
如果未提供 |
WITH
localdatetime({
year: 2017, month: 11, day: 11,
hour: 12, minute: 31, second: 14, nanosecond: 645876123
}) AS d
RETURN
localdatetime.truncate('millennium', d) AS truncMillenium,
localdatetime.truncate('year', d, {day: 2}) AS truncYear,
localdatetime.truncate('month', d) AS truncMonth,
localdatetime.truncate('day', d) AS truncDay,
localdatetime.truncate('hour', d, {nanosecond: 2}) AS truncHour,
localdatetime.truncate('second', d) AS truncSecond
| truncMillenium | truncYear | truncMonth | truncDay | truncHour | truncSecond |
|---|---|---|---|---|---|
|
|
|
|
|
|
行数: 1 |
|||||
localtime()
语法 |
|
||
描述 |
创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
可以是时间值的字符串表示形式,包含单个键 'timezone' 的映射,或者包含时间值('hour'、'minute'、'second'、'millisecond'、'microsecond'、'nanosecond')作为组件的映射。 |
|
返回 |
|
||
| 名称 | 描述 |
|---|---|
|
指定一天中小时数的整数,介于 |
|
指定分钟数的整数,介于 |
|
指定秒数的整数,介于 |
|
指定毫秒数的整数,介于 |
|
指定微秒数的整数,介于 |
|
指定纳秒数的整数,介于 |
如果未提供参数,则必须调用 |
如果省略 |
如果省略 |
如果省略 |
任何缺失的 |
如果 |
集合 |
只有在也指定了 |
时间值的字符串表示形式必须符合为 时间 定义的格式。 |
时间值的字符串表示形式必须表示有效时间;即表示 |
|
如果提供了任何可选参数,它们将覆盖 |
|
RETURN localtime() AS now
返回当前本地时间(即本地时区)。
| now |
|---|
|
行数: 1 |
RETURN localtime({timezone: 'America/Los Angeles'}) AS nowInLA
返回加利福尼亚州的当前本地时间。
| nowInLA |
|---|
|
行数: 1 |
创建 LOCAL TIME 值
UNWIND [
localtime({hour: 12, minute: 31, second: 14, nanosecond: 789, millisecond: 123, microsecond: 456}),
localtime({hour: 12, minute: 31, second: 14}),
localtime({hour: 12})
] AS theTime
RETURN theTime
| theTime |
|---|
|
|
|
行数: 3 |
STRING 创建 LOCAL TIMEUNWIND [
localtime('21:40:32.142'),
localtime('214032.142'),
localtime('21:40'),
localtime('21')
] AS theTime
RETURN theTime
| theTime |
|---|
|
|
|
|
行数: 4 |
LOCAL TIMEWITH time({hour: 12, minute: 31, second: 14, microsecond: 645876, timezone: '+01:00'}) AS tt
RETURN
localtime({time: tt}) AS timeOnly,
localtime({time: tt, second: 42}) AS timeSS
| timeOnly | timeSS |
|---|---|
|
|
行数: 1 |
|
localtime.realtime()
语法 |
|
||
描述 |
使用实时时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
返回的 LOCAL TIME 将是系统的实时时钟。
RETURN localtime.realtime() AS now
| now |
|---|
|
行数: 1 |
localtime.statement()
语法 |
|
||
描述 |
使用语句时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一语句中,每次调用都会返回相同的 LOCAL TIME 值。但在同一事务中,不同语句可能会产生不同的值。
RETURN localtime.statement() AS now
| now |
|---|
|
行数: 1 |
RETURN localtime.statement('America/Los Angeles') AS nowInLA
| nowInLA |
|---|
|
行数: 1 |
localtime.transaction()
语法 |
|
||
描述 |
使用事务时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一事务中,每次调用都会返回相同的 LOCAL TIME 值。但在不同事务中,不同语句可能会产生不同的值。
RETURN localtime.transaction() AS now
| now |
|---|
|
行数: 1 |
localtime.truncate()
语法 |
|
||
描述 |
使用指定单位将给定时间值截断为 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:'day'、'week'、'month'、'weekYear'、'quarter'、'year'、'decade'、'century'、'millennium'。 |
|
|
|
要截断的日期,使用 `ZONED DATETIME`、`LOCAL DATETIME`、`LOCAL TIME` 或 `DATE`。 |
|
|
|
截断时要保留的、小于 |
|
返回 |
|
||
localtime.truncate() 返回通过在指定组件边界(由作为函数参数传入的截断单位表示)处将指定时间即时值截断到最近的先前时间点所获得的 LOCAL TIME 值。换句话说,返回的 LOCAL TIME 的所有小于指定截断单位的组件都将设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将*覆盖*这些较小组件原本会设置的默认值。例如,当截断单位字符串是 'hour' 时,可以提供具有某个值 x 的 minute,以确保返回值的*分钟*被设置为 x,而不是默认的*分钟*(即 1)。
支持将时间截断到日 — 即 |
|
任何未包含在 |
如果未提供 |
如果未提供 |
WITH time({hour: 12, minute: 31, second: 14, nanosecond: 645876123, timezone: '-01:00'}) AS t
RETURN
localtime.truncate('day', t) AS truncDay,
localtime.truncate('hour', t) AS truncHour,
localtime.truncate('minute', t, {millisecond: 2}) AS truncMinute,
localtime.truncate('second', t) AS truncSecond,
localtime.truncate('millisecond', t) AS truncMillisecond,
localtime.truncate('microsecond', t) AS truncMicrosecond
| truncDay | truncHour | truncMinute | truncSecond | truncMillisecond | truncMicrosecond |
|---|---|---|---|---|---|
|
|
|
|
|
|
行数: 1 |
|||||
time()
语法 |
|
||
描述 |
创建 |
||
参数 |
名称 |
类型 |
描述 |
|
|
可以是时间值的字符串表示形式,包含单个键 'timezone' 的映射,或者包含时间值('hour'、'minute'、'second'、'millisecond'、'microsecond'、'nanosecond'、'timezone')作为组件的映射。 |
|
返回 |
|
||
| 名称 | 描述 |
|---|---|
|
指定一天中小时数的整数,介于 |
|
指定分钟数的整数,介于 |
|
指定秒数的整数,介于 |
|
指定毫秒数的整数,介于 |
|
指定微秒数的整数,介于 |
|
指定纳秒数的整数,介于 |
|
指定时区的表达式。 |
如果未提供参数,则必须调用 |
如果省略 |
如果省略 |
如果省略 |
任何缺失的 |
如果省略 |
如果 |
集合 |
只有在也指定了 |
如果省略*时区*组件,则将默认为配置的默认时区。 |
时间值的字符串表示形式必须表示有效时间;即表示 |
|
如果提供了任何可选参数,它们将覆盖 |
|
选择 |
选择 |
RETURN time() AS currentTime
返回使用本地时区的当前时间。
| currentTime |
|---|
|
行数: 1 |
RETURN time({timezone: 'America/Los Angeles'}) AS currentTimeInLA
返回加利福尼亚州的当前时间。
| currentTimeInLA |
|---|
|
行数: 1 |
创建 ZONED TIME 值
UNWIND [
time({hour: 12, minute: 31, second: 14, millisecond: 123, microsecond: 456, nanosecond: 789}),
time({hour: 12, minute: 31, second: 14, nanosecond: 645876123}),
time({hour: 12, minute: 31, second: 14, microsecond: 645876, timezone: '+01:00'}),
time({hour: 12, minute: 31, timezone: '+01:00'}),
time({hour: 12, timezone: '+01:00'})
] AS theTime
RETURN theTime
| theTime |
|---|
|
|
|
|
|
行数: 5 |
STRING 创建 ZONED TIMEUNWIND [
time('21:40:32.142+0100'),
time('214032.142Z'),
time('21:40:32+01:00'),
time('214032-0100'),
time('21:40-01:30'),
time('2140-00:00'),
time('2140-02'),
time('22+18:00')
] AS theTime
RETURN theTime
| theTime |
|---|
|
|
|
|
|
|
|
|
行数: 8 |
ZONED TIMEWITH localtime({hour: 12, minute: 31, second: 14, microsecond: 645876}) AS tt
RETURN
time({time: tt}) AS timeOnly,
time({time: tt, timezone: '+05:00'}) AS timeTimezone,
time({time: tt, second: 42}) AS timeSS,
time({time: tt, second: 42, timezone: '+05:00'}) AS timeSSTimezone
| timeOnly | timeTimezone | timeSS | timeSSTimezone |
|---|---|---|---|
|
|
|
|
行数: 1 |
|||
time.realtime()
语法 |
|
||
描述 |
使用实时时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
返回的 ZONED TIME 将是系统的实时时钟。
RETURN time.realtime() AS currentTime
| currentTime |
|---|
|
行数: 1 |
time.statement()
语法 |
|
||
描述 |
使用语句时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一语句中,每次调用都会返回相同的 ZONED TIME 值。但在同一事务中,不同语句可能会产生不同的值。
RETURN time.statement() AS currentTime
| currentTime |
|---|
|
行数: 1 |
RETURN time.statement('America/Los Angeles') AS currentTimeInLA
| currentTimeInLA |
|---|
|
行数: 1 |
time.transaction()
语法 |
|
||
描述 |
使用事务时钟返回当前 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示时区的字符串值。 |
|
返回 |
|
||
在同一事务中,每次调用都会返回相同的 ZONED TIME 值。但在不同事务中,不同语句可能会产生不同的值。
RETURN time.transaction() AS currentTime
| currentTime |
|---|
|
行数: 1 |
time.truncate()
语法 |
|
||
描述 |
使用指定单位将给定时间值截断为 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:'microsecond'、'millisecond'、'second'、'minute'、'hour'、'day'。 |
|
|
|
要截断的日期,使用 `ZONED DATETIME`、`LOCAL DATETIME`、`ZONED TIME` 或 `LOCAL TIME`。 |
|
|
|
截断时要保留的、小于 |
|
返回 |
|
||
time.truncate() 返回通过在指定组件边界(由作为函数参数传入的截断单位表示)处将指定时间即时值截断到最近的先前时间点所获得的 ZONED TIME 值。换句话说,返回的 ZONED TIME 的所有小于指定截断单位的组件都将设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将*覆盖*这些较小组件原本会设置的默认值。例如,当截断单位 STRING 是 'hour' 时,可以提供具有某个值 x 的 minute,以确保返回值的*分钟*被设置为 x,而不是默认的*分钟*(即 1)。
支持将时间截断到日 — 即 |
|
如果 |
如果 |
|
任何未包含在 |
如果未提供 |
如果未提供 |
WITH time({hour: 12, minute: 31, second: 14, nanosecond: 645876123, timezone: '-01:00'}) AS t
RETURN
time.truncate('day', t) AS truncDay,
time.truncate('hour', t) AS truncHour,
time.truncate('minute', t) AS truncMinute,
time.truncate('second', t) AS truncSecond,
time.truncate('millisecond', t, {nanosecond: 2}) AS truncMillisecond,
time.truncate('microsecond', t) AS truncMicrosecond
| truncDay | truncHour | truncMinute | truncSecond | truncMillisecond | truncMicrosecond |
|---|---|---|---|---|---|
|
|
|
|
|
|
行数: 1 |
|||||