SQL-запрос для преобразования даты и времени в дату

Опубликовано: 1 Сентября, 2022

В MS SQL Server даты сложны для новичков, так как при работе с БД формат даты в таблице должен совпадать с датой ввода для вставки. В различных сценариях вместо даты используется DateTime (время также связано с датой). В этой статье мы узнаем, как преобразовать DateTime в DATE, используя три разные функции.

  • В РОЛЯХ( )
  • КОНВЕРТИРОВАТЬ( )
  • TRY_CONVERT()
  • Использование подстроки

Целью данных этой статьи является преобразование DateTime в Date в SQL Server, например ГГГГ-ММ-ДД ЧЧ:ММ: СС в ГГГГ-ММ-ДД.

Способ 1: Использование приведения

Это функция для приведения одного типа к другому типу, поэтому здесь мы будем использовать для приведения DateTime к дате.

Синтаксис:

CAST( dateToConvert AS DATE)

Пример 1:

Запрос:

SELECT CAST(GETDATE() AS DATE) AS CURRENT_DATE

Выход:

GETDATE(): эта функция возвращает текущую дату и время, например (2021-08-27 17:26:36.710)

Пример 2;

Запрос:

SELECT CAST("2021-08-27 17:26:36.710" AS DATE) AS CURRENT_DATE_GFG

Выход:

Способ 2: использование конвертации

Это функция для преобразования одного типа в другой тип, поэтому здесь мы будем использовать ее для преобразования DateTime в дату.

Синтаксис:

CONVERT(DATE, dateToConvert)

Пример 1:

Запрос:

SELECT CONVERT(DATE, GETDATE()) AS CURRENT_DATE_GFG

Выход:

Пример 2:

Запрос:

SELECT CONVERT(DATE, "2021-08-27 17:26:36.710" ) AS CURRENT_DATE_GFG

Выход:

Способ 3: Try_Convert

Это функция для приведения одного типа к другому типу, поэтому здесь мы будем использовать для преобразования даты и времени в дату. если дата недействительна, тогда она будет нулевой, а Convert выдаст ошибку.

Синтаксис:

TRY_CONVERT(DATE, dateToConvert)

ВЫБЕРИТЕ TRY_CONVERT(DATE,'2021-08-27 17:26:36.710′) AS CURRENT_DATE_GFG

Пример 1:

Запрос:

SELECT TRY_CONVERT(DATE,GETDATE()) AS CURRENT_DATE_GFG

Выход:

Пример 2:

Запрос:

SELECT TRY_CONVERT(DATE,"2021-08-27 17:26:36.710") AS CURRENT_DATE_GFG

Выход:

Способ 4: использование подстроки

Это функция для получения короткой строки или подстроки, поэтому здесь мы получаем индекс подстроки от 0 до 11.

Синтаксис:

SUBSTRING( dateToConvert ,0,11)

Пример 1:

Запрос:

SELECT SUBSTRING( "2021-08-27 17:26:36.710" ,0,11) AS CURRENT_DATE_GFG

Выход:

Пример 2;

Запрос:

SELECT SUBSTRING( CONVERT(varchar(17), GETDATE(), 23) ,0,11) AS CURRENT_DATE_GFG

Выход: