Как найти имя дня по дате в SQL Server?

Опубликовано: 8 Января, 2023

Существует несколько способов найти название дня по дате в SQL Server. Ниже мы рассмотрим несколько способов найти название дня с любой даты из прошлого в будущее:

  • ДАТАИМЯ() Функция
  • ФОРМАТ() Функция

Способ 1: использовать функцию DATENAME()

Эта функция в SQL Server используется для поиска заданной части указанной даты. Более того, он возвращает выходное значение в виде строки.

Синтаксис:

DATENAME(type, Date) 

where:
type to find day name could be weekday, dw, w

Запрос 1:

DECLARE @Date DATE = "2020-12-22";
SELECT @Date As [TDate],  
DATENAME(WEEKDAY, @Date) AS [Day_Name];

Выход:

Вместо дня недели мы могли бы также использовать для него аббревиатуру:

Запрос 2:

DECLARE @Date DATE = "2022-12-22";
SELECT @Date As [TDate],  
DATENAME(w, @Date) AS [Day_Name];

Выход:

Запрос 3:

DECLARE @Date DATE = "2021-12-22";
SELECT @Date As [TDate],  
DATENAME(dw, @Date) AS [Day_Name];

Выход:

Способ 2: Функция FORMAT()

Функция FORMAT() является одной из строковых функций, которая используется для форматирования указанного значения в заданном формате.

Синтаксис:

FORMAT(Date, "dddd") 

Запрос 1:

DECLARE @Date DATE = "2021-12-24";
SELECT @Date As [TDate],  
FORMAT(@Date, "dddd") AS [Day_Name]

Выход:

Запрос 2:

Предположим, у нас есть имя таблицы «GeekLogin»:

Шаг 1: Создать таблицу

Запрос:

CREATE TABLE GeekLogin 
( Name varchar (22),
 ID int, LoginDate date) ;

Шаг 2: Вставьте значения в таблицу.

Запрос:

INSERT INTO GeekLogin VALUES ("Khushi",2 ,"2019-07-22");
INSERT INTO GeekLogin VALUES ("Megha",4 ,"2019-09-23");
INSERT INTO GeekLogin VALUES ("Komal",3 ,"2019-08-27");
INSERT INTO GeekLogin VALUES ("Mona",5 ,"2019-12-19");
INSERT INTO GeekLogin VALUES ("Ankit", 7,"2019-09-12");
INSERT INTO GeekLogin VALUES ("Deepak", 8 ,"2019-09-04");
Имя Я БЫ ЛогинДата
Кхуши 2 2019-07-22
Мега 4 2019-09-23
Комал 3 2019-08-27
Мона 5 2019-12-19
Анкит 7 2019-09-12
Дипак 8 2019-09-04

Шаг 3: Чтобы проверить LoginDay для LoginDate, мы могли бы использовать приведенный ниже запрос.

Запрос:

SELECT TOP (1000) [Name],[ID],[LoginDate], 
DATENAME(w, LoginDate) AS [LoginDay]
FROM [GeekLogin];

Выход: