【问题标题】:How automatically add 1 year date to an existing date in SQL Server如何自动将 1 年日期添加到 SQL Server 中的现有日期
【发布时间】:2012-02-09 14:46:52
【问题描述】:

我的任务是根据DateCreated 列自动向PatientsInfo 表中的所有注册患者开具N2,500 的年度账单。

当然,我会使用存储过程将这些记录插入到PatientDebit 表中,并创建一个 SQL 作业来执行此过程。

我将如何将PatientsInfo 表中的select * 患者DateCreated 现在插入另一个表PatientDebit 1 岁。

我的算法是这样的:

  1. PatientsInfo 表中选择患者的登记日期
  2. 给他们的DateCreated加一年
  3. 今天添加日期了吗?如果是,
  4. 将记录插入到PatientDebit 表中,账单为 N2,500
  5. 如果没有,什么也不做。

请问如何编写脚本?

【问题讨论】:

  • 这与 C# 有什么关系? (编辑:删除标签)
  • 如果你想要两个日期之间的时间跨度,或者谷歌“datediff”。
  • 你试过什么?你甚至有一个工作查询来获取早于 1 年的记录吗?当你有这个回来,我们可以帮助你。
  • 你的逻辑是落后的。您应该仅从 PatientInfo 中选择 DateCreated 匹配(今天 - 1 年)的患者。这意味着您只处理那些您知道与您的病情相匹配的患者。至于确定日期,正如其他人所说,您应该使用DateAdd。文档很好。

标签: sql sql-server tsql


【解决方案1】:

使用 DATEADD,即:

SELECT DATEADD(year, 1, '2006-08-30')

参考:http://msdn.microsoft.com/en-us/library/ms186819.aspx

【讨论】:

    【解决方案2】:

    假设2个表的列相同:

    INSERT INTO PatientDebit
    SELECT * from PatientsInfo WHERE DateCreated<DATEADD(year, -1, GETDATE())
    

    如果PatientsInfo 有很多记录,请确保您在DateCreated 上有一个索引,否则它可能会很慢

    【讨论】:

    • 很高兴!或许你可以考虑接受这个答案?
    【解决方案3】:

    sql 中应该有 .add 或 addyear() 函数。你像 .add(year, day, month) 一样添加。阅读 sql datetime 添加年、月和秒。这很简单。就像 c# 一样。

    日期添加(信息)。现在是时候了。获取日期()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多