【问题标题】:Add 1 to current year in expression表达式中的当前年份加 1
【发布时间】:2019-03-10 02:45:05
【问题描述】:

我想了解如何在以下表达式的 ELSE 部分中将年份添加到当前年份:

=IIF(Today() >= cDate("10/01/" + cStr(year(Today()))) AND Today() <= cDate("10/02/" + cStr(year(Today()))),
    cDate("11/01/" + cStr(year(FORMAT(Cdate(today), "MM-dd-yyyy")))),
        cDate("11/01/" + cStr(year(FORMAT(Cdate(today), "MM-dd-yyyy")))))

我尝试过这样做:

=IIF(Today() >= cDate("10/01/" + cStr(year(Today()))) AND Today() <= cDate("10/02/" + cStr(year(Today()))),
    cDate("11/01/" + cStr(year(FORMAT(Cdate(today), "MM-dd-yyyy")))),
        cDate("11/01/" + cStr(year(FORMAT(Cdate(today), "MM-dd-yyyy") + 1))))

但报告不接受它作为有效语法。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: vba date expression ssrs-2008 iif


    【解决方案1】:

    你可以使用

    DateAdd("yyyy", 1, "10/1/2018")
    

    如果你愿意,你可以格式化日期

    DateAdd("yyyy", 1, Format("10/1/2018", "MM/dd/yyyy"))
    

    你也可以格式化结果!

    Format(DateAdd("yyyy", 1, Format("10/1/2018", "MM/dd/yyyy")), "MM/dd/yyyy")
    

    在这里查看 https://www.techonthenet.com/excel/formulas/dateadd.php

    这里 https://www.techonthenet.com/excel/formulas/format_date.php

    【讨论】:

    • 到底为什么要格式化日期并将其传递给期望日期参数的东西?
    • 因为您的日期(字符串)可以是任何格式。如果您不需要格式化日期,只需使用 DateAdd!
    • "10/01/2018" 可以是 1 月 10 日或 1 月 1 日,具体取决于格式
    • @JorgeRibeiro 没有。 #10/1/2018#日期文字,即 Date 值。因此,您将使用Date,将其转换为String,然后将其传递给DateAdd(然后需要将其隐式转换回Date),..然后将生成的@987654332 @变成String。疯狂。
    • 每次在字符串和日期之间转换时,都会引入错误表示的可能性。日期数据类型 存在 的原因是为了提供一种规范的方式来表示它们,从而避免它们在显示方式上的区域差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    相关资源
    最近更新 更多