Calcolare la differenza tra due date in sql

lunedì 10 marzo 2008 - 17.16

trinity Profilo | Guru

salve ragazzi,
io ho creato una teballa in sql server al cui interno ci sono 3 campi, ossia i seguenti:

Num_persone - data_arrivo - data_partenza

allora io come risultato dovrei care una sintassi sql che mi calcoli il totale presenze.
Le presenze si calcolano prendendo il num_persone e moltiplicandole con il numero di giorni che sono rimasti i clienti a pernottare compreso il giorni di arrivo. Pertanto in un esempio del genere:

num_persone = 5
data_arrivo= 09/03/2008
data_partenza = 11/03/2008

come presenze devo uscire il seguente numero: 5 x 3(giorni) = 15

Come posso fare?

Ps le date sono di tipo smalldatetime

ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

Ciao!
>Come posso fare?
puoi usare la funzione DATEDIFF. Dai un'occhiata al seguente esempio:
declare @data1 datetime declare @data2 datetime set @data1 = '20080101' set @data2 = '20080315' select DATEDIFF(day,@data1,@data2) /* ----------- 74 */

DATEDIFF (Transact-SQL)
http://msdn2.microsoft.com/en-us/library/ms189794.aspx

Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

lbenaglia Profilo | Guru

>num_persone = 5
>data_arrivo= 09/03/2008
>data_partenza = 11/03/2008
>
>come presenze devo uscire il seguente numero: 5 x 3(giorni) =
>15

3gg? 11-9 fa 2

USE tempdb; CREATE TABLE dbo.Tabella( num_persone int NOT NULL, data_arrivo smalldatetime NOT NULL, data_partenza smalldatetime NOT NULL ); INSERT dbo.Tabella VALUES(5, '20080309', '20080311'); INSERT dbo.Tabella VALUES(4, '20080310', '20080317'); SELECT num_persone * DATEDIFF(day, data_arrivo, data_partenza) AS Tot FROM dbo.Tabella; /* Output: Tot ----------- 10 28 (2 row(s) affected) */ DROP TABLE dbo.Tabella;

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5