SSRS 的自定义日期格式系列访问 odbc
Custom date format iseries access odbc for SSRS
如何解决我的以下问题?
1. 我正在使用(系列访问 odbc 驱动程序)从 AS/400 DB2 将数据提取到 SSRS。
2. 我想将列存储格式化为整数到日期格式。
下面的示例 = 20180612 是 SQL 查询。
使用以下查询,
SELECT CHAR(DATE(SUBSTR(DIGITS(20180612),1,4)||'-'||
SUBSTR(DIGITS(20180612),5,2)||'-'||
SUBSTR(DIGITS(20180612),7,2)),ISO) AS RESULTSDATE
输出 = 2018-06-02
问题:我怎样才能生成像 d/m/yyyy 这样的自定义日期格式
我用过,ISO, USA, LOCAL, JIS, EUR 都没有yield.
示例:2018 年 2 月 6 日
如果您想在 SQL 服务器中进行转换,最接近的是 SQL 服务器中的美国 110 (mm-dd-yyyy)。
如果你的数据集有2018-06-02的字段,可以使用CDATE函数为SSRS进行转换它设置为一个日期,然后使用 FORMAT 属性 或 FORMAT 函数按照您想要的方式格式化文本框。
格式函数:
=FORMAT(CDATE("2018-06-02"), "M/d/yyyy")
文本框的格式 属性:
/* 这是我所能达到的最接近的结果,有一个前导零 */
select
varchar_format(
timestamp_format(char(20180612), 'YYYYMMDD')
, 'DD/MM/YYYY') as resultdate
from my8digitdatetable
/* 导出 IRL 发送日期 */
select
cast(
timestamp_format(char(20180612), 'YYYYMMDD')
as date) as resultdate
from my8digitdatetable
我已经知道了。我只是把它格式化成没有格式化的日期。
SELECT DATE(SUBSTR(DIGITS(MIN(DTAHRS.HREMCP.EMREDT)),1,4)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HREMCP.EMREDT)),5,2)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HREMCP.EMREDT)),7,2)) AS RESULTSDATE
之后,我把它作为子查询,这样我就可以将它传递给参数。
下面是我的整个查询,然后在 SSRS 我可以使用 date/time 参数控制来与结果进行比较。
SELECT x.RESULTSDATE
FROM ( SELECT DATE(SUBSTR(DIGITS(MIN(DTAHRS.HRLVTP.LTLDTE)),1,4)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HRLVTP.LTLDTE)),5,2)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HRLVTP.LTLDTE)),7,2)) AS RESULTSDATE
) as x
WHERE x.RESULTSDATE >= ? AND x.RESULTSDATE <= ?
希望对你也有帮助
如何解决我的以下问题? 1. 我正在使用(系列访问 odbc 驱动程序)从 AS/400 DB2 将数据提取到 SSRS。 2. 我想将列存储格式化为整数到日期格式。 下面的示例 = 20180612 是 SQL 查询。 使用以下查询,
SELECT CHAR(DATE(SUBSTR(DIGITS(20180612),1,4)||'-'||
SUBSTR(DIGITS(20180612),5,2)||'-'||
SUBSTR(DIGITS(20180612),7,2)),ISO) AS RESULTSDATE
输出 = 2018-06-02
问题:我怎样才能生成像 d/m/yyyy 这样的自定义日期格式 我用过,ISO, USA, LOCAL, JIS, EUR 都没有yield.
示例:2018 年 2 月 6 日
如果您想在 SQL 服务器中进行转换,最接近的是 SQL 服务器中的美国 110 (mm-dd-yyyy)。
如果你的数据集有2018-06-02的字段,可以使用CDATE函数为SSRS进行转换它设置为一个日期,然后使用 FORMAT 属性 或 FORMAT 函数按照您想要的方式格式化文本框。
格式函数:
=FORMAT(CDATE("2018-06-02"), "M/d/yyyy")
文本框的格式 属性:
/* 这是我所能达到的最接近的结果,有一个前导零 */
select
varchar_format(
timestamp_format(char(20180612), 'YYYYMMDD')
, 'DD/MM/YYYY') as resultdate
from my8digitdatetable
/* 导出 IRL 发送日期 */
select
cast(
timestamp_format(char(20180612), 'YYYYMMDD')
as date) as resultdate
from my8digitdatetable
我已经知道了。我只是把它格式化成没有格式化的日期。
SELECT DATE(SUBSTR(DIGITS(MIN(DTAHRS.HREMCP.EMREDT)),1,4)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HREMCP.EMREDT)),5,2)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HREMCP.EMREDT)),7,2)) AS RESULTSDATE
之后,我把它作为子查询,这样我就可以将它传递给参数。 下面是我的整个查询,然后在 SSRS 我可以使用 date/time 参数控制来与结果进行比较。
SELECT x.RESULTSDATE
FROM ( SELECT DATE(SUBSTR(DIGITS(MIN(DTAHRS.HRLVTP.LTLDTE)),1,4)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HRLVTP.LTLDTE)),5,2)||'-'||
SUBSTR(DIGITS(MIN(DTAHRS.HRLVTP.LTLDTE)),7,2)) AS RESULTSDATE
) as x
WHERE x.RESULTSDATE >= ? AND x.RESULTSDATE <= ?
希望对你也有帮助