【问题标题】:PL/SQL to subtract two datesPL/SQL 减去两个日期
【发布时间】:2015-12-02 09:30:20
【问题描述】:

我使用 SQL Server 2012,在我的表中我有列 iddatedays

date 的格式为dd-mm-yyyy

我需要 PL/SQL 代码来获取今天的日期并找到日期列之间的差异并将其存储在天列中

例子:

获取今天的日期并从表中查找存储日期的差异

id       date         days
1       01-12-2015      1
2       30-11-2015      2

我需要 PL/SQL 代码。

【问题讨论】:

  • Plsql 一个 MS SQL Server - 这是一个非常奇怪的组合...
  • SQL Server 中没有 PL/SQL。你是说T-SQL吗? (而且这个问题无论如何都不需要在 Oracle 中使用 PL/SQL)
  • 为什么要更新表本身的值?没有参考点,您永远不知道使用哪个日期来计算该值。否则您将不得不每天运行此更新。在这种情况下,只需使用视图。

标签: sql tsql sql-server-2012


【解决方案1】:

你可以使用DATEDIFF:

SELECT DATEDIFF(day,'2015-06-05','2015-08-05') AS DiffDate

你的情况应该是:

INSERT INTO table_name (days)
SELECT DATEDIFF(day,table_name.date,GETDATE());

SQL Server Date Functions

【讨论】:

    【解决方案2】:

    使用DATEDIFFLEAD 函数与下一行进行比较。

    SELECT DATEDIFF(d,date,LEAD(date) OVER (ORDER BY id))
    FROM yourtable
    

    用于与今天的日期进行比较

    SELECT DATEDIFF(d,date,GETDATE())
    FROM yourtable
    

    【讨论】:

    • 需要从 sqlserver 获取存储的日期并减去当前日期。 ---马特,malyy
    猜你喜欢
    • 2016-03-15
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    相关资源
    最近更新 更多