Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

3 начина да получите името на деня от дата в SQL Server (T-SQL)

В SQL Server, точно както можете да използвате T-SQL, за да получите името на месеца от дата, можете също да използвате същите методи, за да получите името на деня. Под име на деня имам предвид понеделник или вторник например, а не номера на датата или номера на деня от седмицата (които също можете да получите, ако имате нужда).

Ето три начина да върнете името на деня от дата в SQL Server с помощта на T-SQL.

Функцията FORMAT()

FORMAT() функцията връща стойност, форматирана в посочения формат и незадължителна култура. Можете да го използвате, за да върнете името на деня от дата.

Ето един пример:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'dddd') AS Result;

Резултат:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

В този случай предоставихме формат dddd което е за името на деня.

Можете също да получите краткото име на деня, като предоставите ddd като втори аргумент:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'ddd') AS Result;

Резултат:

+----------+
| Result   |
|----------|
| Sun      |
+----------+

Можете също да предоставите незадължителен аргумент, за да посочите културата.

Ето няколко примера:

DECLARE @date datetime2 = '2018-07-01';
SELECT 
    FORMAT(@date, 'dddd', 'en-US') AS 'en-US',
    FORMAT(@date, 'dddd', 'es-es') AS 'es-es',
    FORMAT(@date, 'dddd', 'de-de') AS 'de-de',
    FORMAT(@date, 'dddd', 'zh-cn') AS 'zh-cn';

Резултат:

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| Sunday  | domingo | Sonntag | 星期日  |
+---------+---------+---------+---------+

Функцията DATENAME()

DATENAME() функцията е подобна на DATEPART() функция, с изключение на това, че връща име от посочената част от датата (но само когато е приложимо име). Това означава, че връща името на деня от седмицата или името на месеца, ако това е, което ви е необходимо.

Ето как да върнете компонента за ден от седмицата на датата:

DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(weekday, @date) AS Result;

Резултат:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Скаларната функция DAYNAME() ODBC

Ако по някаква причина трябва да използвате ODBC скаларна функция, има такава, наречена DAYNAME() който конкретно връща името на деня от седмицата от дата.

Пример:

DECLARE @date datetime2 = '2018-07-01';
SELECT {fn DAYNAME(@date)} AS Result;

Резултат:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Когато използвате ODBC скаларни функции в T-SQL, те са заобиколени от къдрави скоби ({} ) и името на функцията е с префикс fn .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извличане на имена на колони и типове на съхранена процедура?

  2. T-SQL получава брой работни дни между 2 дати

  3. Как да конвертирате стойност на дата/час в низ в SQL Server с помощта на CONVERT()

  4. Мога ли да използвам израз CASE в условие JOIN?

  5. Как да промените формата на текущата дата в SQL Server (T-SQL)