Как найти имя дня по дате в 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];
Выход: