Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 10825|Απάντηση: 0

[Πηγή] Πρακτική δήλωση SQL: εκτίμηση ημερομηνίας

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 26/11/2014 3:53:01 μ.μ. | | |

ΔΗΛΩΣΤΕ @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)






Προηγούμενος:Πρόβλημα χρήσης ευρετηρίου όταν ο sqlserver χειρίζεται όπως '%keyword%'
Επόμενος:ORACLE 11g Νέες δυνατότητες - Επιτρέπει στις κλειδαριές DDL να περιμένουν κλειδαριές DML
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com