【问题标题】:PostgreSQL Extract() DOW : why not Date datatype in addition to timestamp?PostgreSQL Extract() DOW:为什么除了时间戳之外没有日期数据类型?
【发布时间】:2013-01-06 04:57:20
【问题描述】:

根据PostgreSQL 8.1版日期时间函数docs

道琼斯指数 星期几(0 - 6;星期日为 0)(仅适用于时间戳值

SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 5

为什么 Date 数据类型不是该函数的有效参数?如果星期几的顺序不因语言环境而改变:

  0 - 6; Sunday is 0 

为什么需要组合日期类型值的时间分量来确定一周中一天的序数?单独的日期块还不够吗?

【问题讨论】:

    标签: postgresql date extract dayofweek ordinal


    【解决方案1】:

    原始问题引用了 8.1 版,9.5 文档指出:

    EXTRACT(field FROM source)

    提取函数从日期/时间值中检索子字段,例如年或小时。 source 必须是时间戳、时间或间隔类型的值表达式。 (日期类型的表达式被转换为时间戳,因此也可以使用。)字段是一个标识符或字符串,用于选择从源值中提取的字段。 extract 函数返回双精度类型的值。以下是有效的字段名称:

    再后来,特别是在 dow 下:

    星期天 (0) 到星期六 (6)

    SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
    Result: 5
    

    请注意,extract 的星期几编号与 to_char(..., 'D') 函数的不同。

    【讨论】:

      【解决方案2】:

      这只是一个文档错误。

      【讨论】:

        猜你喜欢
        • 2021-12-10
        • 1970-01-01
        • 2017-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-08
        • 2014-05-22
        相关资源
        最近更新 更多