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

Как да форматирате датата и часа в SQL Server

В SQL Server можете да използвате T-SQL FORMAT() функция за форматиране на датата и/или часа. Просто предоставете два аргумента; датата/часа и формата, който да използвате.

Форматът се предоставя като форматен низ. Низ за форматиране определя как трябва да бъде форматиран изходът.

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

Основен пример

Ето основен пример за използване на FORMAT() функция за форматиране на дата.

Необработена дата

Първо, ето как изглежда необработената дата. Ако изпълним следния оператор:

SELECT GETDATE();

Получаваме резултат, който изглежда по следния начин:

2018-05-03 02:36:54.480

Форматирана дата

Сега можем да използваме FORMAT() функция за форматиране на тази дата и час в предпочитания от нас формат. Например, можем да направим това:

SELECT FORMAT( GETDATE(), 'D');

Което води до това:

Thursday, May 3, 2018

Това е само един от многото формати, които можем да изберем. Ето още едно:

SELECT FORMAT( GETDATE(), 'd');

Което води до това:

5/3/2018

Действителните резултати ще варират в зависимост от използваната култура. По подразбиране се използва езикът на текущата сесия, но можете също да замените това с трети аргумент („култура“).

Задаване на локал

Бихме могли да добавим трети аргумент („култура“) към горния код, за да определим локала, който да се използва за формата на датата.

Така че можем да направим това например:

SELECT FORMAT( GETDATE(), 'd', 'en-gb');

Което води до това:

5/3/2018

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

SELECT FORMAT( GETDATE(), 'd', 'zh-cn');

Което води до това:

2018/5/3

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

Ето как да намерите езика на текущата сесия и ето как да го настроите.

Имайте предвид, че текущият език обикновено ще бъде същият като езика по подразбиране на потребителя, но това може да не е така, ако потребителят е променил текущия език с помощта на SET LANGUAGE . Във всеки случай можете също да разберете какъв е езикът по подразбиране.

Както може да си представите, можете да получите доста различни резултати в зависимост от текущия ви език или стойността на всеки аргумент за „култура“. Вижте как езиковите настройки могат да повлияят на вашите FORMAT() резултати за повече примери.

Извличане на месец/седмица/година

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

Имайте предвид, че те са чувствителни към главни букви. Например MMM форматира месеца по различен начин от mmm .

Месец

Примерен код за връщане на частта за месеца:

SELECT FORMAT( GETDATE(), 'MMM');

Резултат:

May

Година

Примерен код за връщане на частта за годината:

SELECT FORMAT( GETDATE(), 'yyyy');

Резултат:

2018

Ден

Примерен код за връщане на частта за деня:

SELECT FORMAT( GETDATE(), 'dddd');

Резултат:

Thursday

Извличане на времето

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

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

SELECT FORMAT( GETDATE(), 'hh.mm');

Резултат:

03.37

Индикаторът AM/PM

Можете също да добавите tt за да включите обозначението AM/PM:

SELECT FORMAT( GETDATE(), 'hh.mm tt');

Резултат:

03.37 AM

Комбиниране на форматни низове

Можете също да комбинирате тези форматни низове, за да предоставите свой собствен персонализиран формат на датата. Пример:

SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');

Резултат:

03.41 AM Thursday, 03 May, 2018

Справка за спецификаторите на формата за дата и час

Следните статии съдържат всички спецификатори на формата за дата и час, които могат да се използват с FORMAT() функция в SQL Server, заедно с примери за T-SQL:

  • Стандартни низове за формат на дата и час
  • Персонализирани низове за формат на дата и час

Това са същите спецификатори на формата за дата и час, които се поддържат от .NET Framework (FORMAT() функцията разчита на .NET Framework).

Справка за спецификатори на числов формат

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

  • Стандартни низове в цифров формат
  • Стрингове с персонализиран цифров формат

Това са същите спецификатори на цифров формат, които се поддържат от .NET Framework.

Други функции за дата

T-SQL включва и куп други функции, които ви помагат да извличате части от дати. Те включват функции като DAY() , MONTH() , YEAR() , DATEPART() и DATENAME() .


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

  2. Проверете неизпратена поща в SQL Server (T-SQL)

  3. Как да възстановите база данни на SQL Server на Mac с помощта на Azure Data Studio

  4. ВЪВЕТЕ СТОЙНОСТИ, КЪДЕТО НЕ СЪЩЕСТВУВА

  5. Защо параметризирана заявка произвежда значително по-бавен план за заявка в сравнение с непараметризирана заявка