0

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

4

2 回答 2

2

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

于 2021-04-06T14:27:03.823 回答
0

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

substring(concat('0', toString(month(<date>))), length(concat('0', toString(month(<date>))))-1, 2)

我在转换为字符串的月份数字前面放了一个 0,并取了字符串的最后两位数。

于 2021-04-07T07:58:35.020 回答