时间函数 - 时刻类型
时间函数允许为每种时间类型创建和操作值——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 |
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
值
DATE
UNWIND [
date({year: 1984, month: 10, day: 11}),
date({year: 1984, month: 10}),
date({year: 1984})
] AS theDate
RETURN theDate
theDate |
---|
|
|
|
行数:3 |
DATE
UNWIND [
date({year: 1984, week: 10, dayOfWeek: 3}),
date({year: 1984, week: 10}),
date({year: 1984})
] AS theDate
RETURN theDate
theDate |
---|
|
|
|
行数:3 |
DATE
UNWIND [
date({year: 1984, quarter: 3, dayOfQuarter: 45}),
date({year: 1984, quarter: 3}),
date({year: 1984})
] AS theDate
RETURN theDate
theDate |
---|
|
|
|
行数:3 |
DATE
UNWIND [
date({year: 1984, ordinalDay: 202}),
date({year: 1984})
] AS theDate
RETURN theDate
返回对应于1984年2月11日
的日期。
theDate |
---|
|
|
行数:2 |
DATE
UNWIND [
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
创建DATE
UNWIND [
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”。 |
|
|
|
使用 |
|
|
|
在截断期间保留的时间组件列表,这些组件小于 |
|
返回值 |
|
date.truncate()
返回通过在指定组件边界(由传递给函数的参数中的截断单位表示)的最近前一时间点截断指定时间实例值获得的DATE
值。换句话说,返回的DATE
将具有所有小于指定截断单位的组件,这些组件设置为其默认值。
可以通过提供包含小于截断单位的组件的映射来补充截断值。这将具有覆盖否则将为这些较小组件设置的默认值的效果。例如,当截断单位STRING
为'year'
时,可以提供day
(具有一定值x
),以确保返回的值将day设置为x
而不是默认day(为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”)作为组件的映射。 |
|
返回值 |
|
名称 | 描述 |
---|---|
|
一个由至少四位数字组成的表达式,指定年份。 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
指定时区的表达式。 |
|
表示UTC时区中自UNIX纪元以来的秒数的数值。 |
|
表示UTC时区中自UNIX纪元以来的毫秒数的数值。 |
如果未提供任何参数,则必须调用 |
如果省略了 |
如果省略了 |
如果省略了 |
如果省略了 |
如果省略了 |
任何缺少的 |
如果省略了 |
如果组合给出 |
可以省略集合 |
只有在也指定了 |
时间值的字符串表示形式必须表示有效的日期;例如,表示 |
如果提供了任何可选参数,则这些参数将覆盖 |
|
选择 |
选择 |
选择 |
|
|
RETURN datetime() AS currentDateTime
返回使用本地时区的当前日期和时间。
currentDateTime |
---|
|
行数:1 |
RETURN datetime({timezone: 'America/Los Angeles'}) AS currentDateTimeInLA
返回加州的当前日期和时间。
currentDateTimeInLA |
---|
|
行数:1 |
创建ZONED DATETIME
值
ZONED DATETIME
UNWIND [
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 DATETIME
UNWIND [
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 DATETIME
UNWIND [
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 DATETIME
UNWIND [
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 DATETIME
UNWIND [
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 DATETIME
datetime()
返回在 UTC 时区中从 UNIX 纪元开始的指定秒数或毫秒数处的ZONED DATETIME
值。
从 UNIX 纪元表示形式转换为其他时间瞬间类型可以通过将ZONED DATETIME
值转换为这些类型之一来实现。
RETURN datetime({epochSeconds: timestamp() / 1000, nanosecond: 23}) AS theDate
theDate |
---|
|
行数:1 |
epocMillis
)创建ZONED DATETIME
RETURN datetime({epochMillis: 424797300000}) AS theDate
theDate |
---|
|
行数:1 |
datetime.fromEpoch()
语法 |
|
||
描述 |
给定自纪元开始以来的秒数和纳秒数,创建一个 |
||
参数 |
名称 |
类型 |
描述 |
|
|
UTC 时区中自 UNIX 纪元以来的秒数。 |
|
|
|
UTC 时区中自 UNIX 纪元以来的纳秒数。这可以添加到秒中。 |
|
返回值 |
|
WITH datetime.fromepoch(1683000000, 123456789) AS dateTimeFromEpoch
RETURN dateTimeFromEpoch
dateTimeFromEpoch |
---|
|
行数:1 |
datetime.fromEpochMillis()
语法 |
|
||
描述 |
给定自纪元开始以来的毫秒数,创建一个 |
||
参数 |
名称 |
类型 |
描述 |
|
|
UTC 时区中自 UNIX 纪元以来的毫秒数。 |
|
返回值 |
|
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()
语法 |
|
||
描述 |
使用指定的单位将给定的时间值截断为 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:“微秒”、“毫秒”、“秒”、“分钟”、“小时”、“天”、“周”、“月”、“周年度”、“季度”、“年”、“十年”、“百年”、“千年”。 |
|
|
|
使用 |
|
|
|
在截断期间保留的时间组件列表,这些组件小于 |
|
返回值 |
|
datetime.truncate()
返回通过在指定组件边界处截断指定时间瞬间值在最近的前一时间点获得的ZONED DATETIME
值(由作为参数传递给函数的截断单位表示)。换句话说,返回的ZONED DATETIME
将具有所有小于指定截断单位的组件,这些组件设置为其默认值。
可以通过提供包含小于截断单位的组件的映射来补充截断值。这将具有覆盖否则将为这些较小组件设置的默认值的效果。例如,当截断单位STRING
为'year'
时,可以提供day
(具有一定值x
),以确保返回的值将day设置为x
而不是默认day(为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 DATETIME
RETURN
localdatetime({
year: 1984, month: 10, day: 11,
hour: 12, minute: 31, second: 14, millisecond: 123, microsecond: 456, nanosecond: 789
}) AS theDate
theDate |
---|
|
行数:1 |
LOCAL DATETIME
RETURN
localdatetime({
year: 1984, week: 10, dayOfWeek: 3,
hour: 12, minute: 31, second: 14, millisecond: 645
}) AS theDate
theDate |
---|
|
行数:1 |
ZONED DATETIME
RETURN
localdatetime({
year: 1984, quarter: 3, dayOfQuarter: 45,
hour: 12, minute: 31, second: 14, nanosecond: 645876123
}) AS theDate
theDate |
---|
|
行数:1 |
LOCAL DATETIME
RETURN
localdatetime({
year: 1984, ordinalDay: 202,
hour: 12, minute: 31, second: 14, microsecond: 645876
}) AS theDate
theDate |
---|
|
行数:1 |
STRING
创建LOCAL DATETIME
UNWIND [
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()
语法 |
|
||
描述 |
使用指定的单位将给定的时间值截断到 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示以下之一的字符串:“微秒”、“毫秒”、“秒”、“分钟”、“小时”、“天”、“周”、“月”、“周年度”、“季度”、“年”、“十年”、“百年”、“千年”。 |
|
|
|
使用 |
|
|
|
在截断期间保留的时间组件列表,这些组件小于 |
|
返回值 |
|
localdatetime.truncate()
返回通过在指定组件边界(由传递给函数的参数的截断单位表示)的最近前一时间点截断指定时间实例值获得的LOCAL DATETIME
值。换句话说,返回的LOCAL DATETIME
将所有小于指定截断单位的组件设置为其默认值。
可以通过提供包含小于截断单位的组件的映射来补充截断值。这将具有覆盖否则将为这些较小组件设置的默认值的效果。例如,当截断单位STRING
为'year'
时,可以提供day
(具有一定值x
),以确保返回的值将day设置为x
而不是默认day(为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”作为组件)的映射。 |
|
返回值 |
|
名称 | 描述 |
---|---|
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
如果未提供任何参数,则必须调用 |
如果省略了 |
如果省略了 |
如果省略了 |
任何缺少的 |
如果组合给出 |
集合 |
只有在也指定了 |
时间值的字符串表示形式必须符合为times定义的格式。 |
时间值的字符串表示形式必须表示有效时间;即,表示 |
|
如果提供了任何可选参数,则这些参数将覆盖 |
可以将 |
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 TIME
UNWIND [
localtime('21:40:32.142'),
localtime('214032.142'),
localtime('21:40'),
localtime('21')
] AS theTime
RETURN theTime
theTime |
---|
|
|
|
|
行数:4 |
LOCAL TIME
WITH 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”。 |
|
|
|
要使用 |
|
|
|
在截断期间保留的时间组件列表,这些组件小于 |
|
返回值 |
|
localtime.truncate()
返回通过在指定组件边界(由传递给函数的参数的截断单位表示)的最近前一时间点截断指定时间实例值获得的LOCAL TIME
值。换句话说,返回的LOCAL TIME
将所有小于指定截断单位的组件设置为其默认值。
可以通过提供包含小于截断单位的组件的映射来补充截断值。这将具有覆盖否则将为这些较小组件设置的默认值的效果。例如,当截断单位字符串为'hour'
时,可以提供minute
(带有一些值x
),以确保返回的值将minute设置为x
而不是默认的minute(为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”作为组件)的映射。 |
|
返回值 |
|
名称 | 描述 |
---|---|
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
一个介于 |
|
指定时区的表达式。 |
如果未提供任何参数,则必须调用 |
如果省略了 |
如果省略了 |
如果省略了 |
任何缺少的 |
如果省略了 |
如果组合给出 |
集合 |
只有在也指定了 |
时间值的字符串表示形式必须符合为times和time zones定义的格式。 |
如果省略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 TIME
UNWIND [
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 TIME
WITH 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”。 |
|
|
|
要截断的日期,可以使用 |
|
|
|
在截断期间保留的时间组件列表,这些组件小于 |
|
返回值 |
|
time.truncate()
返回通过在指定的时间组件边界(由作为参数传递给函数的截断单位表示)处截断指定时间瞬时值在最近的前一时间点获得的ZONED TIME
值。换句话说,返回的ZONED TIME
将所有小于指定截断单位的组件设置为其默认值。
可以通过提供一个包含小于截断单位的组件的映射来补充截断值。这将具有覆盖否则将为这些较小组件设置的默认值的效果。例如,当截断单位STRING
为'hour'
时,可以提供minute
(带有一些值x
),以确保返回值的minute设置为x
而不是默认的minute(为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 |