首页 > 解决方案 > 如何在 SQL-92 中获取两位数的日期月份?

问题描述

我的表格中有一个日期格式单元格,我需要将月份提取为两位数。这意味着6-4-2021应该返回04。主要问题是这需要在 SQL-92 的语法中。关于如何做到这一点的任何想法?

标签: sqlansi-sql-92

解决方案


SQL-92

substring(
    '0' || substring(<column> from position('-' in <column>) + 1 for 3)
    from position(
        '-' in 
        '0' || substring(<column> from position('-' in <column>) + 1 for 3)
    ) - 2
    for 2
) 

我想知道您是否真的在寻找 ODBC 函数。如果是这样,则locate()等效于 for position(),注意参数语法仅使用逗号分隔符。replace()然后也可用于替代方法。

查看您的工具的一些参考资料,我会以这种方式翻译它,尽管看起来确实有一个dayOfMonth()功能可以使这一切变得更加简单。

用于支持多源的 Universe 的 SAP BusinessObjects SQL

substring(
    '0' || substring(<column>, pos('-', <column>) + 1, 3),
    pos('-',
        '0' || substring(<column>, pos('-', <column>) + 1, 3)
    ) - 2,
    2
)

https://help.sap.com/doc/4667b9486e041014910aba7db0e91070/4.2.4/en-US/sbo42sp4_info_design_tool_en.pdf

在 PostgreSQL 中查看它:http ://sqlfiddle.com/#!17/9eecb/72962


推荐阅读