Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Πώς να πάρει τα ονόματα των μηνών μεταξύ δύο ημερομηνιών σε SQL

Να πάρει τα ονόματα των μηνών σε ένα εύρος ημερομηνίας είναι πολύ λιγότερο πολύπλοκη εργασία από ό, τι μπορεί να φαίνεται αρχικά , αν και αυτό μπορεί να γίνει με ελαφρώς διαφορετικούς τρόπους , ανάλογα με την γεύση του SQL σας χρησιμοποιείτε . Με το T - SQL μπορεί να γίνει με τη λειτουργία DATENAME και μια μεταβλητή πίνακα , ενώ με την MySQL θα πρέπει να χρησιμοποιήσετε τη λειτουργία MonthName και έναν προσωρινό πίνακα . Οδηγίες
τον Μήνα Ονόματα σε T - SQL
Η 1

ορίσει ως ημερομηνία έναρξης και την ημερομηνία λήξης των μεταβλητών , καθώς και μια μεταβλητή πίνακα για να κρατήσει προσωρινά τα ονόματα των μηνών ? Για παράδειγμα :

ΔΗΛΩΝΟΥΝ @ ξεκινήσει DATETIME ? ΔΗΛΩΝΟΥΝ @ τέλος DATETIME ?

ΔΗΛΩΝΟΥΝ @ μήνες ΠΙΝΑΚΑΣ ( MONTH_NAME VARCHAR ( 30 ) ) ?

SET @ start = '2011 -01- 01 ' ? SET @ τέλος = '2011 -12- 01 ' ? 2

μετακινηθείτε μέσα από τους μήνες , προσθέτοντας τα ονόματα των μηνών για τη μεταβλητή πίνακα χρησιμοποιώντας το DATENAME και τις λειτουργίες DateAdd ? για παράδειγμα :

DECLARE @ ξεκινήσει DATETIME ? ΔΗΛΩΝΟΥΝ @ τέλος DATETIME ?

ΔΗΛΩΝΟΥΝ @ μήνες ΠΙΝΑΚΑΣ ( MONTH_NAME VARCHAR ( 30 ) ) ?

SET @ start = '2011 -01- 01 ' ? SET @ end =' 2011-12-01 « ?

ΕΝΩ ( @ έναρξη <@ τέλος ) BEGIN

INSERT INTO @ monthsSELECT DATENAME (μήνας , @ έναρξης) ?

SET @ έναρξης = DateAdd (μήνας , 1 , @ έναρξης) ?

ΤΕΛΟΣ
εικόνων 3

Τέλος , επιλέξτε τη λίστα των ονομάτων των μηνών από τη μεταβλητή πίνακα ? για παράδειγμα :

ΔΗΛΩΝΟΥΝ @ ξεκινήσει DATETIME ? ΔΗΛΩΝΟΥΝ @ τέλος DATETIME ?

ΔΗΛΩΝΟΥΝ @ μήνες ΠΙΝΑΚΑΣ ( MONTH_NAME VARCHAR ( 30 ) ) ?

SET @ start = '2011 -01- 01 ' ? SET @ end = '2011 -12- 01 ' ?

ΕΝΩ ( @ έναρξη <@ end ) BEGIN

INSERT INTO @ monthsSELECT DATENAME (μήνας , @ έναρξης) ?

SET @ ξεκίνημα = DateAdd (μήνας , 1 , @ εκκίνηση) ?

ΤΕΛΟΣ

SELECT * FROM @ μήνες ?
εικόνων Πάρτε μήνα Ονόματα σε MySQL
Φτηνές 4

κηρύξει την ημερομηνία έναρξης και λήξης των μεταβλητών , και στη συνέχεια να δημιουργήσετε έναν προσωρινό πίνακα για να κρατήσει τα ονόματα των μηνών ? για παράδειγμα :

ΔΗΛΩΝΟΥΝ @ ξεκινήσει DATETIME ? ΔΗΛΩΝΟΥΝ @ τέλος DATETIME ?

Δημιουργεί προσωρινά TempMonths ΠΙΝΑΚΑΣ ( MONTH_NAME VARCHAR ( 30 ) ) ?

SET @ start = '2011 -01- 01 ' ? SET @ end = '2011 -12- 01' ?

5

επαναλάβει τη διάρκεια των μηνών , προσθέτοντας τα ονόματα μήνα στον προσωρινό πίνακα , χρησιμοποιώντας τις λειτουργίες MonthName και DATE_ADD ? για παράδειγμα :

ΔΗΛΩΝΟΥΝ @ ξεκινήσει DATETIME ? ΔΗΛΩΝΟΥΝ @ τέλος DATETIME ?

Δημιουργεί προσωρινά TempMonths ΠΙΝΑΚΑΣ ( MONTH_NAME VARCHAR ( 30 ) ) ?

SET @ start = '2011 -01- 01 ' ? SET @ end = '2011 -12- 01' ?

ΕΝΩ ( @ έναρξη <@ end ) BEGIN

INSERT INTO TempMonthsSELECT MonthName ( @ εκκίνηση) ?

SET @ start = DATE_ADD ( @ ξεκίνημα , ΔΙΑΣΤΗΜΑ 1 ΜΗΝΑ) ?

ΤΕΛΟΣ
Η 6

τέλος , επιλέξτε τη λίστα των ονομάτων των μηνών και καθαρισμό του προσωρινού πίνακα ? για παράδειγμα :

ΔΗΛΩΝΟΥΝ @ ξεκινήσει DATETIME ? ΔΗΛΩΝΟΥΝ @ τέλος DATETIME ?

ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΣΩΡΙΝΗ TempMonths ΠΙΝΑΚΑΣ ( MONTH_NAME VARCHAR ( 30 ) ) ?

SET @ start = '2011 -01- 01 ' ? SET @ end = '2011 -12- 01' ?

ΕΝΩ ( @ έναρξη <@ end ) BEGIN

INSERT INTO TempMonthsSELECT MonthName ( @ ξεκινήσει ) ?

SET @ start = DATE_ADD ( @ ξεκίνημα , ΔΙΑΣΤΗΜΑ 1 ΜΗΝΑ) ?

eND

SELECT * FROM TempMonths ?

DROP TABLE TempMonths ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα