Artur Jacek Dworakowski

Artur Jacek Dworakowski IT Project
Manager/Business
Analyst

Temat: funkcja wyznaczająca pierwszy dzień tygodnia ISO (dla MSSQL)

Witam!

Może poradzicie :)
Potrzebna mi funkcja która dla zadanego parametru DATETIME zwróci odpowiadający mu poniedziałek (dla tygodni liczonych wg ISO).
a ha... coby nie było za łatwo, funkcja powinna działać niezależnie od ustawienia zmiennej @@DATEFIRST

HINT: dla zmiennej @@DATEFIRST=1 wystarczy:

RETURN DATEADD(day,-DATEPART(dw,@d)+1,@d)

Dzięki za odpowiedź :)
Mirosław Serwaczyński

Mirosław Serwaczyński Analityk programista

Temat: funkcja wyznaczająca pierwszy dzień tygodnia ISO (dla MSSQL)

spróbuj tego:

select dateadd(dd,(9-@@datefirst) % 7-datepart(dw,getdate()),getdate())

zamiast getdate() wstawiasz rozpatrywaną datę (@d)
Szymon P.

Szymon P. Databricks, Azure
Data Factory, MS SQL
SERVER

Temat: funkcja wyznaczająca pierwszy dzień tygodnia ISO (dla MSSQL)

Mirosław Serwaczyński:
spróbuj tego:

select dateadd(dd,(9-@@datefirst) % 7-datepart(dw,getdate()),getdate())

zamiast getdate() wstawiasz rozpatrywaną datę (@d)

a jeszcze prościej ? ;)

SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)

testowane na różnych dniach jako datefirst

set datefirst 7
select @@datefirst
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
GO;

konto usunięte

Temat: funkcja wyznaczająca pierwszy dzień tygodnia ISO (dla MSSQL)

w 2008 masz http://msdn.microsoft.com/en-us/library/ms174420.aspx
i ISO_WEEK

w 2005 np. to http://blogs.lessthandot.com/index.php/DataMgmt/DataDe...

Następna dyskusja:

Problem: Funkcja, a zwracan...




Wyślij zaproszenie do