【问题标题】:PeopleSoft Query Manager ExpressionPeopleSoft 查询管理器表达式
【发布时间】:2019-12-17 21:42:07
【问题描述】:

使用 Microsoft SQL Server,我尝试将 A.CHECK_DT 格式化为 mmddyyyy - 带有前导零,因此今年 1 月 11 日看起来像:01112019。 麻烦是我尝试的一切都没有正确。我最接近改变格式的是:

CONCAT(MONTH((CONVERT(CHAR(10),A.CHECK_DT,101))),DAY((CONVERT(CHAR(10),A.CHECK_DT,101))),YEAR((CONVERT(CHAR( 10),A.CHECK_DT,101))))

但这会将日期转换为 1182019,没有前导零。有人有什么想法吗?

【问题讨论】:

    标签: sql-server peoplesoft


    【解决方案1】:

    我想通了:

    此脚本将为您提供 MMDDYYYY 格式

    替换(CONVERT(VARCHAR(10), CAST(A.CHECK_DT AS DATE), 101),'/','')

    (表达式类型 = 字符,长度 10)

    【讨论】:

    【解决方案2】:

    [edit] 下面的评论适用于 Oracle 数据库,但事实证明这个问题是针对 Microsoft SQL Server 的。我将保留答案,以防其他人通过搜索找到此问题。

    假设您在 oracle 上,请尝试在 TO_CHAR 函数告诉它你想如何格式化输出。

    您可以使用TO_CHAR 格式化日期。语法类似于 TO_CHAR(YOURDATE,YOURFORMAT)。对于您的具体示例,它 应该是TO_CHAR(A.CHECK_DT,'MMDDYYYY')

    这是一个将这个 SQL 显示为有效查询的网页:

    以下是我通过搜索找到的一些不错的资源:@​​987654331@:

    当然,总是有 Oracle 文档(尽管它倾向于 有更少的例子):

    【讨论】:

    • 感谢您的评论 - 特定代码不起作用,我收到此错误:发生 SQL 错误。有关详细信息,请查阅您的系统日志。由于 SQL 错误,运行查询时出错,代码=8603,消息=[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]直接执行 SQL;没有光标。 [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]'TO_CHAR' 不是可识别的内置函数名称。 [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Sta (50,380)
    • 啊,您没有指定您使用的数据库类型。我的解决方案是针对 Oracle 的。如果您使用的是 Microsoft SQL Server,那么情况会有所不同。我会将该标签添加到问题中。
    • 我很抱歉 - 直到昨天晚些时候我才意识到它是什么类型的数据库。我认为澄清它是 PeopleSoft 查询管理器很有帮助 - 但实际上并非如此。我的队友不得不告诉我有关 SQL 服务器的信息 - 然后我进行了研究并能够弄清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多