日期和时间类型

    在插入时间类型的属性值时,Nebula Graph会根据配置文件timezone_name参数指定的时区,将该时间值(TIMESTAMP类型例外)转换成相应的世界协调时间(UTC)时间。在查询中返回的时间类型值为UTC时间。

    结合RETURN子句,函数date()time()datetime()可以用空值返回当前的日期或时间。

    • 支持年、月、日、时、分、秒,不支持毫秒。

    • 不支持函数localdatetime()duration()

    • 不支持大部分字符串时间格式,仅支持YYYY-MM-DDThh:mm:ss

    DATE

    DATE包含日期,但是不包含时间。Nebula Graph检索和显示DATE的格式为YYYY-MM-DD。支持的范围是-32768-01-0132767-12-31

    DATETIME

    包含日期和时间。Nebula Graph检索和显示DATETIME的格式为YYYY-MM-DDThh:mm:ss.ususus。支持的范围是-32768-01-01T00:00:00.00032767-12-31T23:59:59.999

    TIMESTAMP包含日期和时间。支持的范围是UTC时间的1970-01-01T00:00:012262-04-11T23:47:16

    TIMESTAMP还有以下特点:

    • 以时间戳形式存储和显示。例如1615974839,表示2021-03-17T17:53:59

    • 查询TIMESTAMP的方式包括时间戳和timestamp()函数。

    示例

    1. 创建标签,名称为date1,包含DATETIMEDATETIME三种类型。

    2. 插入点,名称为test1

      1. nebula> INSERT VERTEX date1(p1, p2, p3) VALUES "test1":(date("2021-03-17"), time("17:53:59"), datetime("2021-03-17T17:53:59"));
    3. 创建标签,名称为school,包含类型。

    4. 插入点,名称为DUT,存储时间为"1988-03-01T08:00:00"

      1. # 时间戳形式插入,1988-03-01T08:00:00对应的时间戳为573177600,转换为UTC时间为573206400。
      2. nebula> INSERT VERTEX school(name, found_time) VALUES "DUT":("DUT", 573206400);
      3. # 日期和时间格式插入。
      4. nebula> INSERT VERTEX school(name, found_time) VALUES "DUT":("DUT", timestamp("1988-03-01T08:00:00"));

    还可以使用WITH语句设置具体日期和时间,例如:

    1. nebula> WITH time({hour: 12, minute: 31, second: 14}) AS d RETURN d;
    2. +--------------+
    3. | d |
    4. +--------------+
    5. | 12:31:14.000 |
    6. +--------------+
    7. nebula> WITH date({year: 1984, month: 10, day: 11}) AS x RETURN x + 1;
    8. +------------+
    9. | x |
    10. +------------+