【问题标题】:FINANCIAL YEAR CLOSE财政年度结束
【发布时间】:2018-03-15 22:31:51
【问题描述】:

我有一个最初是这样的 SQL 查询-

DELETE FROM table_1
WHERE column_1 IN (  SELECT column_1 FROM table_2 WHERE 
column_3 < CURRENT - INTERVAL(N) MONTH TO MONTH)

现在我的顾问已告知使用财务收盘年份而不是当前年份,例如:

DELETE FROM table_1
WHERE column_1 IN (  SELECT column_1 FROM table_2 WHERE 
column_3 < FINANCIAL YEAR CLOSE - INTERVAL(N) MONTH TO MONTH)

财政年度结束是三月底。

我不知道应该如何合并这些更改。

【问题讨论】:

  • 我正在使用来自 teraterm 应用程序的 sql server
  • CURRENT 工作正常..我只需要 FINANCIAL YEAR CLOSE 的逻辑
  • 好的,但是你能帮我解决这个问题吗?
  • @user8367639 您能否编辑您的问题并为所涉及的技术提供适当的标签?
  • 如果我知道哪个标签是正确的标签,我会知道,我只能说我正在使用来自 Teraterm 应用程序的服务器,如果我给 dbaccess 它将进入 SQL 查询模式。 . 我是编码新手,对不起

标签: sql informix


【解决方案1】:

您始终可以使用带有特定掩码的 TO_DATE(),例如:

$dbaccess stores7 -
Database selected.

> SELECT (TO_DATE("2018-03-01","%Y-%m-%d") - INTERVAL (1) MONTH TO MONTH) FROM TABLE(SET{1});
(constant)
2018-02-01 00:00:00.00000
1 row(s) retrieved.
>
Database closed.
$

无论你把什么作为日期字符串都由你自己决定;)

【讨论】:

    【解决方案2】:

    由于不同公司的财务年度结算可能不同,因此它不是内置函数,必须手动计算。

    您需要使用 CURRENT 并从该日期提取年份部分,并从 [当前年份]-03-31 创建一个新日期并在您的查询中使用它。

    一些谷歌搜索让我认为这是来自 IBM 的 Informix 数据库。

    【讨论】:

    • 其实后面的部分 where-YEAR=date +%Y 放入[当年]-03-31
    • 如果我在 12-01-2018 或 12-02-2018...1 月和 2 月给出它会是逻辑错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多