Funkcja DATENAME() zwraca łańcuch znaków, typu navarchar, który reprezentuje określoną część daty, może to być dzień, miesiąc, rok lub czas określonej daty.
DATENAME() jest podobna do DATEPART() z wyjątkiem typu zwracanego.
Funkcja DATENAME() zwraca część daty jako łańcuch znaków, podczas gdy funkcja DATEPART() zwraca część daty jako liczbę całkowitą.
SYNTAX
DATENAME (datepart, inputdate)
datepart jest częścią daty, która ma zostać wyodrębniona.
inputdate jest datą, z której wyodrębniana jest część daty.
Przyjrzyjrzyjmy się przykładowi funkcji DATENAME w SQL.
Następujące wyrażenie używa funkcji DATENAME, która wyodrębnia części daty z podanej daty '2018-03-27 18:23:45.470′
DECLARE @date DATETIME = '2018-03-27 18:23:45.470';SELECT DATENAME(year, @date) as year,DATENAME(quarter, @date) as quarter,DATENAME(month, @date) as month,DATENAME(day, @date) as day,DATENAME(dayofyear ,@date) as dayofyear,DATENAME(Week ,@date) as week,DATENAME(hour, @date) as hour,DATENAME(minute, @date) as minute,DATENAME(second, @date) as second ,DATENAME(millisecond, @date) as millisecond ,DATENAME(microsecond, @date) as microsecond ,DATENAME(nanosecond, @date) as nanosecond
Jak widać, zwraca ona wszystkie części daty, takie jak kwartał, miesiąc, dzień, dzień roku, tydzień, godzina, minuta, sekunda, milisekunda, mikrosekunda i nanosekunda.
Więc używając funkcji DATENAME możesz uzyskać dowolną część daty.
Poniżej znajdują się ważne listy datepart, których możesz użyć, aby uzyskać część daty zgodnie z twoimi wymaganiami.
day d, dd month m, mmyear yy, yyyyquarter qq, qhour hhminute mi, nsecond ss, smillisecond msmicrosecond mcsnanosecond nsweek wk, wwdayofyear dy, y
DATEPART VS DATENAME
Spójrzmy na przykład rozważając różnicę między DATEPART i DATENAME.
DATEPART zwraca część daty jako liczbę całkowitą, gdzie jako DATENAME zwraca łańcuch danych typu string.
Więc jeśli dodasz jakąkolwiek liczbę do wyniku zwróconego przez DATEPART, to dodaje ona tę liczbę do wyniku i zwraca zmodyfikowany wynik, gdzie gdy dodasz jakąkolwiek liczbę do wyniku zwróconego przez DATENAME, to konkatenuje ona tę liczbę z wynikiem zamiast ją dodawać.
Patrzmy na przykład, w poniższej instrukcji można zobaczyć, że dla danej daty próbujemy dodać wartość 2 w wyniku zwróconym przez funkcję DATEPART i DATENAME dla części daty zawierającej miesiąc i rok dla danej daty.
Widać wynik końcowy, gdzie funkcja DATEPART dodaje wartość 2 w wyniku, podczas gdy DATENAME konkatenuje wartość 2 z wynikiem.
DECLARE @date DATETIME = '2018-03-27 18:23:45.470';SELECT DATENAME(month, @date) + '2' as month_from_DateName, DATEPART(month, @date) + '2' as month_from_DatePart SELECT DATENAME(year, @date) + '2' as year_from_DateName, DATEPART(year, @date) + '2' as year_from_DatePart,
Zalecane dla Ciebie
SerwerSQL DATEPART()
325 wyświetleń ogółem, 3 wyświetlenia dzisiaj
.