2012-02-09 13 views
5

Tengo una tarea para facturar automáticamente a todos los pacientes registrados en la tabla PatientsInfo una factura anual de N2,500 base en la columna DateCreated.Cómo agregar automáticamente la fecha de 1 año a una fecha existente en el servidor SQL

Ciertamente, utilizaré un procedimiento almacenado para insertar estos registros en la tabla PatientDebit y crearé un trabajo SQL para realizar este procedimiento.

¿Cómo voy a select * pacientes en PatientsInfo mesa donde DateCreated es de 1 año de edad para mí para insertar en otra mesa PatientDebit.

tengo mi algoritmo de la siguiente manera:

  1. seleccione fecha de registro para los pacientes de PatientsInfo mesa
  2. agrega 1 año a su DateCreated
  3. es hoy en día la fecha añadió? si es así,
  4. Inserte el registro en la tabla PatientDebit con la factura de N2,500
  5. Si no, no haga nada.

¿Cómo escribo el guión?

+1

Google "dateadd" – mbeckish

+0

¿Cómo se relaciona esto con C#? (Editar: etiqueta eliminada) –

+0

O google "datediff" si desea el lapso de tiempo entre 2 fechas. – mbeckish

Respuesta

0

debe haber .add o addyear() función en sql. Agregas como .add (año, día, mes). Lea sobre sql datetime add year, month y seconds. Es bastante sencillo. Es como C#.

Dateadd (info). ahora es el tiempo. obtener la fecha().

6

Suponiendo que las columnas de las tablas 2 son los mismos:

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

Asegúrese de que tiene un índice en DateCreated si PatientsInfo tiene muchos registros, ya que podría ser lento, de lo contrario

+0

Esto funciona para mí. – Rahmat

+0

¡Me alegro de que lo haya hecho! ¿Tal vez podrías considerar aceptar la respuesta entonces? – Johann

Cuestiones relacionadas