webForumDet fria alternativet
Logga in / Bli medlem

datum + 30 dagar

Databaser & SQL

3 svar · 495 visningar · startad av freddyk

Medlem sedan okt. 2006103 inlägg
Frågan#1

Tjena,

Försöker mig på en Function i SQL Server 2005

Vill ha en funktion som räknar ut betalningsvillkor.

Ex: Fakturadatum = 20080220, Betalningsvillkor = 30 dagar

Vill då ha ut en sista betalningsdag (date-format) ur detta

20080220 + 30 dagar

Hur gör man detta? Hur ser formeln ut?

Tack på förhand! :)

Medlem sedan okt. 2006103 inlägg
#2

tror jag hittade det...

men vilket är bästa sättet?
använder man...
SET @adddays = 30
SET NOCOUNT OFF
SELECT @startdate AS 'Fakturadatum',
@startdate + @adddays AS 'Betalas senast'

Eller använder man...
SELECT @startdate AS Fakturadatum, (DATEADD(dd,@adddays,@startdate)) AS Betalas Senast

Kan detta stämma, månntro?

Någon som kan hjälpa mig med en Function för detta som returnerar ett datum?

Tack... igen ;)

Medlem sedan dec. 200697 inlägg
#3

SELECT @startdate AS Fakturadatum, (DATEADD(day,30,@startdate)) AS 'Betalas Senast'

Så skulle jag göra.

--- EDIT ---

Fast testade lite. Beror också på reultat du vill ha.

select getdate(), dateadd(day, 30, getdate())

Ger:

2008-02-20 11:53:01.490 2008-03-21 11:53:01.490

Och

select getdate(), dateadd(day, 29, getdate())

Ger:

2008-02-20 11:53:30.437 2008-03-20 11:53:30.437

Så beroende på resultatet du vill ha sätt 29 alt 30

Medlem sedan okt. 2006103 inlägg
#4

Metatron skrev:

SELECT @startdate AS Fakturadatum, (DATEADD(day,30,@startdate)) AS 'Betalas Senast'

Så skulle jag göra.

--- EDIT ---

Fast testade lite. Beror också på reultat du vill ha.

select getdate(), dateadd(day, 30, getdate())

Ger:

2008-02-20 11:53:01.490 2008-03-21 11:53:01.490

Och

select getdate(), dateadd(day, 29, getdate())

Ger:

2008-02-20 11:53:30.437 2008-03-20 11:53:30.437

Så beroende på resultatet du vill ha sätt 29 alt 30

Ja, jag testade också det. Brukligt är väl att det är 30 dagar efter det datum som fakturan skapades (faktureringsdatum). Så jag tror att 30 kanske är mest korrekt att använda? Har ni ngn aning om hur jag kan nollställa tiden till 00:00:00, i samma veva?

263 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)