|
ΔΗΛΩΣΤΕ @dt ημερομηνίαώρας ΟΡΙΣΜΌΣ @dt=GETDATE() ΔΗΛΩΣΗ @number int ΣΕΤ @number=3 --1. Καθορίστε την ημερομηνία της πρώτης ή της τελευταίας ημέρας του έτους --Α. Η πρώτη μέρα του χρόνου SELECT Co nVERT(char(5),@dt,120)+ '1-1 ' --Β. Η τελευταία μέρα του χρόνου SELECT Co nVERT(char(5),@dt,120)+ '12-31 ' --2. Η πρώτη ή η τελευταία ημέρα του τριμήνου κατά το οποίο βρίσκεται η καθορισμένη ημερομηνία --Α. Πρώτη μέρα του τριμήνου SELECT Co nVERT(ημερομηνία/ώρα, Co nVERT(χαρακτήρας(8), DATEADD(Mo nth, DATEPART(Τρίμηνο,@dt)*3-Mo nth(@dt)-2, @dt), 120)+ '1 ')
--Β. Τελευταία ημέρα του τριμήνου (απόφαση CASE) SELECT Co nVERT(ημερομηνία/ώρα, Co nVERT(χαρακτήρας(8), DATEADD(Mo nth, DATEPART(Τρίμηνο,@dt)*3-Mo nth(@dt), @dt), 120) +ΠΕΡΙΠΤΩΣΗ ΟΤΑΝ ΗΜΕΡΟΜΗΝΙΑΜΕΡΟΣ(Τρίμηνο,@dt) σε(1,4) ΜΕΤΆ '31 'ΑΛΛΙΏΣ '30' ΤΈΛΟΣ) --Γ. Τελευταία ημέρα του τριμήνου (αλγόριθμος άμεσης ώθησης) SELECT DATEADD(Ημέρα,-1, Co nVERT(χαρακτήρας(8), DATEADD(Mo nth, 1+DATEPART(Τρίμηνο,@dt)*3-Mo nth(@dt), @dt), 120)+ '1 ') --3.Η πρώτη ή η τελευταία ημέρα του μήνα κατά τον οποίο βρίσκεται η καθορισμένη ημερομηνία --Α. Η πρώτη μέρα του μήνα SELECT Co nVERT(ημερομηνία/ώρα;Co nVERT(char(8);@dt,120)+ '1 ')
--Β. Η τελευταία μέρα του μήνα SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ') --Γ. Τελευταία ημέρα του μήνα (εύκολη στη χρήση λάθος μέθοδος) SELECT DATEADD(Mo nth;1;DATEADD(Ημέρα;-DAY(@dt);@dt)) --4. Οποιαδήποτε ημέρα της εβδομάδας κατά την οποία βρίσκεται η καθορισμένη ημερομηνία SELECT DATEADD(Ημέρα;@number-ΗΜΕΡΟΜΗΝΙΑPART(Ημέρα εβδομάδας@dt);@dt)
--5. Οποιαδήποτε ημέρα της εβδομάδας κατά την οποία βρίσκεται η καθορισμένη ημερομηνία --Α. Κυριακή ως πρώτη μέρα της εβδομάδας SELECT DATEADD(Day,@number-(DATEPART(Weekday;@dt)+@@DATEFIRST-1)%7,@dt)
--Β. Η Δευτέρα είναι η πρώτη μέρα της εβδομάδας SELECT DATEADD(Ημέρα;@number-(DATEPART(Ημέρα εβδομάδας@dt)+@@DATEFIRST-2)%7-1,@dt)
|