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

Как да промените форматите за дата и час в T-SQL

Проблем:

Искате да промените формата на поле за дата или стойност в база данни на SQL Server.

Пример:

Нашата база данни има таблица с име Patient с данни в колоните Id , FirstName , LastName и RegistrationDate .

Id Име Фамилия Дата на регистрация
1 Джейн Уилямс 20.06.2019
2 Габриел Кафяв 2019-02-02
3 Лора Народен 05.11.2016

Нека променим формата на датата на регистрация на всеки пациент. Първо ще поставим името на делничния ден, последвано от деня и името на месеца и 4-цифрена година (напр. „петък, 27 декември 2019 г.“).

Решение:

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

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy')
          AS FormattedRegistrationDate
FROM Patient;

Ето резултата от заявката:

First Name Фамилия FormattedRegistrationDate
Джейн Уилямс Четвъртък, 20 юни 2019 г.
Габриел Кафяв Събота, 2 февруари 2019 г.
Лора Народен Събота, 5 ноември 2016 г.

Дискусия:

Можем да променим как се показва дадена дата с функцията FORMAT(). Тази функция приема два задължителни аргумента и един незадължителен аргумент. В нашия пример използвахме само двата задължителни аргумента. Първият е дата, която може да бъде от колона дата/час/дата и час или всеки израз, който връща дата или час. (В нашия пример използваме колоната RegistrationDate .) Вторият аргумент е низ, съдържащ новия формат на датата. В нашия пример използвахме 'dddd, dd MMMM, yyyy' :

  • dddd – Името на деня от седмицата.
  • г – Денят от месеца, от 1 до 31.
  • ММММ – Пълното име на месеца.
  • гггг – Четирицифрената година.

Таблицата по-долу представя повече спецификатори на формата на дата/час:

спецификатор описание
d Ден в диапазона 1-31
dd Ден в диапазона 01-31
ddd Съкратеното име на деня от седмицата
dddd Пълното име на деня от седмицата
M Месец от 1 до 12
MM Месец от 01 до 12
МММ Съкратеното име на месеца
ММММ Пълното име на месеца
y 2-цифрена година, от 0 до 99
yy 2-цифрена година от 00 до 99
гггг 4-цифрена година
g Епоха (напр. н. е.)
h Час от 1 до 12 (12-часов часовник)
hh Час от 01 до 12 (12-часов часовник)
H Час от 0 до 23 (24-часов часовник)
HH Час от 00 до 23 (24-часов часовник)
m Минута от 0 до 59
mm Минута от 00 до 59
s Втори от 0 до 59
ss Втори от 00 до 59
t Първи знак от AM или PM (напр. 9A, 5P)
tt AM или PM
z Изместване на часовете, без водеща нула (напр. +3)
zz Изместване на часовете, с водеща нула (напр. +03)

Можете да научите повече в документацията на Microsoft за стандартни формати за дата и час и персонализирани формати.

Ако искате да форматирате тази дата за конкретен език и/или държава, използвайте третия незадължителен аргумент:култура . Този аргумент е низ, съдържащ културния код за конкретен регион или държава. (Културните кодове се състоят от езиков код, тире и код на държавата.) В примера по-долу използваме културния код за Германия, който комбинира кода на немския език („de“) с кода на държавата за Германия („DE“), т.е. „de-DE“. Получената дата се показва на немски и е форматирана така, както германската публика би очаквала да я види.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy', 'de-DE')
          AS FormattedRegistrationDate
FROM Patient;

Ето резултата от тази заявка:

First Name Фамилия Дата на регистрация
Джейн Уилямс Донерстаг, 20 юни 2019 г.
Габриел Кафяв Самстаг, 2 февруари 2019 г.
Лора Народен Самстаг, 5 ноември 2016 г.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ефективна обработка на стойностите NULL с функцията SQL COALESCE за начинаещи

  2. Как да инсталирате InfluxDB на Ubuntu 20.10

  3. Намиране на предимства на производителността с разделяне

  4. Промените в записваем дял може да се провалят неочаквано

  5. SCD тип 4