2013-02-22 2 views
0

J'ai deux colonnes qui contiennent des datetimes et j'ai besoin de deux les ajouter d'une manière ou d'une autre. J'ai essayé d'utiliser la somme, mais cela n'a pas fonctionné. Im en utilisant SQLServer 2008.SQL ajoutant deux colonnes (datetime)

Colonnes

loanPeriod = le loanperiod de l'élément

checkOutDate = quand l'article a été emprunté

Et Im essayant d'atteindre cet lastreturndate = (checkoutDate + loanperiod)

+0

Quelle base de données utilisez-vous? – alphadogg

+0

Dans quelles unités est loanperiod, jours? – Tahbaza

+0

mois @Tahbaza – Dynamiite

Répondre

2

select dateadd(month, loanperiod, checkoutdate) as lastreturndate

2

La plupart des bases de données ont une fonction DATEADD() ou DATEDIFF() ou similaire.

2

Vraisemblablement, ceux-ci sont mesurés en jours. Ainsi, vous pouvez faire quelque chose comme ceci:

select dateadd(day, datediff(day, 0, loanPeriod), checkoutDate) 

Il est étrange de stocker la période de prêt en tant que datetime. Si c'est le cas, la date ressemblera à une date au début des années 1900 (sauf si la période est très longue). Ce qui précède le convertit en jours, puis l'ajoute à la date de départ.

+0

Que proposez-vous je stocker loanperiod comme? – Dynamiite

+0

@Sebastian. . . Cela dépend de quelles valeurs cela pourrait être. La première chose qui me vient à l'esprit est le nombre de jours. Alternativement, il pourrait s'agir d'une paire de nombres et d'une unité. . . (2, 'années'), (14, 'mois'), ou peu importe. –

+0

jours est beaucoup mieux qu'un nombre et une unité. le nombre et l'unité n'ont pas de qualités rédemptrices. Je pense que le meilleur pari est la date d'échéance. –