Problem:
Du vil gerne hente måneden fra et datofelt i en SQL Server-database.
Eksempel:
Vores database har en tabel med navnet Furniture
med data i kolonnerne Id
, Name
og ProducedDate
.
Id | Navn | Produceret dato |
---|---|---|
1 | sofa | 2018-01-10 |
2 | stol | 2018-01-05 |
3 | skrivebord | 2018-06-20 |
4 | reol | 2018-11-15 |
Lad os få måneden fra hvert produkts ProducedDate
og find ud af, hvilke møbler der blev produceret i en given måned.
Løsning:
Vi bruger MONTH()
fungere. Her er den forespørgsel, du ville skrive:
SELECT Name, MONTH(ProducedDate) AS ProducedMonth FROM Furniture;
Her er resultatet af forespørgslen:
Navn | Produceret måned |
---|---|
sofa | 1 |
stol | 1 |
skrivebord | 6 |
reol | 11 |
Diskussion:
For at få en måned fra et datofelt i SQL Server skal du bruge MONTH()
fungere. Denne funktion tager kun ét argument – datoen. Dette kan være en dato- eller dato- og klokkeslætsdatatype. (I vores eksempel er kolonnen ProducedDate
er af datoen datatype.) Argumentet kan være et kolonnenavn eller et udtryk. (I vores eksempel er det ProducedDate
kolonne).
MONTH()
returnerer månedsnummeret som et heltal fra 1 til 12. For skrivebordet elementet, ProducedMonth
værdien er 6 (returneret fra 'YYYY-MM-DD'
). dato '2018-06-20'
).