Как автоматически добавить 1-летнюю дату к существующей дате в SQL Server - PullRequest
5 голосов
/ 09 февраля 2012

У меня есть задача автоматически выставлять счета всем зарегистрированным пациентам в таблице PatientsInfo Ежегодный счет в размере N2 500 по столбцу DateCreated.

Конечно, я буду использовать хранимую процедуру, чтобы вставить эти записи в таблицу PatientDebit и создать задание SQL для выполнения этой процедуры.

Как я select * пациентов при PatientsInfoтаблица, где DateCreated теперь мне 1 год, и я могу вставить ее в другую таблицу PatientDebit.

У меня есть такой алгоритм:

  1. выберите дату регистрации пациентов изPatientsInfo таблица
  2. Добавить 1 год к их DateCreated
  3. Добавлена ​​ли сегодня дата?Если да,
  4. Вставьте запись в таблицу PatientDebit со счетом N2,500
  5. Если нет, ничего не делайте.

Пожалуйста, как мне написатьсценарий

Ответы [ 3 ]

14 голосов
/ 09 февраля 2012

Использовать DATEADD, т. Е .:

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

Ссылка: http://msdn.microsoft.com/en-us/library/ms186819.aspx

6 голосов
/ 09 февраля 2012

Предполагая, что столбцы 2 таблиц одинаковы:

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

Убедитесь, что у вас есть индекс на DateCreated, если PatientsInfo имеет много записей, поскольку в противном случае он может быть медленным

0 голосов
/ 09 февраля 2012

должна быть функция .add или addyear () в sql.Вы добавляете как .add (год, день, месяц).Читайте по sql datetime добавить год, месяц и секунды.Это довольно просто.Это как c #.

Dateadd (информация).сейчас времяGETDATE ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...