如何自动将1年日期添加到SQL Server中的现有日期

Rah*_*mat 5 sql t-sql sql-server

我的任务是自动向PatientsInfo表格中所有已注册患者开具基于该DateCreated栏目的年度账单N2,500 .

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

如何将我select *的病人在PatientsInfo表,其中DateCreated现在是1年生的我插入到另一个表PatientDebit.

我的算法是这样的:

  1. PatientsInfo表中 选择患者的登记日期
  2. 加1年 DateCreated
  3. 今天是否添加了日期?如是,
  4. 将记录插入PatientDebit表中,账单为N2,500
  5. 如果不是,什么都不做.

请问我该如何编写脚本?

JSc*_*Ced 15

使用DATEADD,即:

SELECT DATEADD(year, 1, '2006-08-30')
Run Code Online (Sandbox Code Playgroud)

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


Joh*_*ann 6

假设2个表的列是相同的:

INSERT INTO PatientDebit
SELECT * from PatientsInfo WHERE DateCreated<DATEADD(year, -1, GETDATE())
Run Code Online (Sandbox Code Playgroud)

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


ief*_*fpw 0

sql中应该有.add或addyear()函数。您可以像 .add(年、日、月) 一样添加。阅读sql datetime 添加年、月和秒。这非常简单。就像 c# 一样。

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