Как найти имя дня по дате в SQL Server?
Существует несколько способов найти название дня по дате в 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];
Выход: