Преобразование DateTime в VarChar в формате yyyy-mm-dd

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для преобразования DateTime в VarChar вам будет полезной функция CONVERT():

SQL
Скопировать код
SELECT CONVERT(VARCHAR, YourDateTimeColumn, 120) -- Классический формат: гггг-мм-дд чч:мм:сс

Если ваша работа связана с SQL Server 2012 или более поздней версией, примените функцию FORMAT() для гибкой настройки формата:

SQL
Скопировать код
SELECT FORMAT(YourDateTimeColumn, 'yyyy-MM-dd HH:mm:ss') -- Настраиваем формат под свои нужды

Замените YourDateTimeColumn на название вашего столбца с датой и временем.

Если вам нужна только дата:

SQL
Скопировать код
SELECT CONVERT(VARCHAR(10), YourDateTimeColumn, 23) -- Краткий формат: гггг-мм-дд

Или для извлечения даты без времени:

SQL
Скопировать код
SELECT LEFT(CONVERT(VARCHAR, YourDateTimeColumn, 120), 10) -- Сокращенное пространство, результат: гггг-мм-дд
Кинга Идем в IT: пошаговый план для смены профессии

Подробнее о функции Convert

Рассмотрим особенности применения CONVERT():

  • Чтобы получить аккуратный и полный формат даты, используйте стиль 23:

    SQL
    Скопировать код
    SELECT CONVERT(VARCHAR, YourDateTimeColumn, 23) -- Вывод даты: гггг-мм-дд
  • Обратитесь к официальной документации Microsoft для изучения всех доступных стилей:

    Markdown
    Скопировать код
    – Стили номеруются от `0` до `131`, включая ISO (`120`, `121`) и локализованые (`130`, `131`).
    – Изучите их, чтобы определить те, что подходят вам.
  • Если вам необходима только дата, выберите NVARCHAR(11):

    SQL
    Скопировать код
    SELECT CONVERT(NVARCHAR(11), YourDateTimeColumn, 23) -- Выводим только дату.

Как избежать распространённых ошибок

Моменты, на которые стоит обратить внимание:

  • Подтвердите, что вы используете правильные стили:

    Markdown
    Скопировать код
    – Некоторые стили могут вызывать ошибки. Обращайтесь к официальной документации.
    – Проводите тестирование, чтобы уберечься от неожиданностей.
  • Запомните, что выбор метода преобразования может влиять на длину данных:

    Markdown
    Скопировать код
    – `VARCHAR(10)` подойдёт для простой даты, а `VARCHAR(23)` позволит сохранять время до миллисекунд.

Визуализация

Представим, что DateTime – это большой пирог, а VarChar – вкусный кусочек этого пирога:

Markdown
Скопировать код
🕓: 2023-04-01 14:30:00  
-- DateTime, объёмный и аппетитный пирог!

🍰: '2023-04-01 14:30:00' 
-- VarChar, отрезанный и объемлющий кусочек этого пирога!

CONVERT() отрезает именно тот кусок, который подходит для 'VarChar':

SQL
Скопировать код
SELECT CONVERT(VARCHAR, GETDATE(), 120); 
-- SQL-печать времени в формате 120

Процесс преобразования даты и времени в строковый формат:

Markdown
Скопировать код
🕓 ➡️ 🍰: 'ГГГГ-ММ-ДД ЧЧ:ММ:СС' 
// Как кондитер, превращающий пирог в удобный для хранения торт!

Точность — это ключ к успеху в SQL

Улучшим навыки работы с SQL:

Выбираем правильный формат

Используйте наиболее подходящие форматы для работы:

  • Дайте предпочтение международному стандарту ISO:

    SQL
    Скопировать код
    SELECT CONVERT(VARCHAR, YourDateTimeColumn, 120) 
    -- Строгий и образцовый формат по ISO
  • Пробуйте специфические для региона стили 130 и 131:

    SQL
    Скопировать код
    SELECT CONVERT(VARCHAR, YourDateTimeColumn, 130) 
    -- Формат со специфическими региональными настройками

Обрезаем время, как профессиональный парикмахер обрезает волосы в SQL

Преобразуем DateTime так, чтобы оставить только дату:

  • Используйте функцию обрезки LEFT для удаления времени:

    SQL
    Скопировать код
    SELECT LEFT(CONVERT(VARCHAR, YourDateTimeColumn, 120), 10) 
    -- Быстрое и точное сокращение до даты
  • Задайте точный формат с фиксированной длиной:

    SQL
    Скопировать код
    SELECT CONVERT(VARCHAR(10), YourDateTimeColumn, 20) 
    -- Обрезаем временную метку, оставляя только дату

Лаборатория экспериментов со стилями

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

SQL
Скопировать код
SELECT CONVERT(VARCHAR, YourDateTimeColumn, style_number) FROM (VALUES (0), (1), (100), (101), (120), (121), (130), (131)) AS Styles(style_number) 
-- SQL как примерочная кабина для ваших данных

Полезные материалы

  1. CAST и CONVERT (Transact-SQL) – SQL Server | Microsoft Learn — Официальная документация по функциям CAST и CONVERT.
  2. Преобразование даты и времени с использованием SQL Server — Все о стилях даты и времени для CAST и CONVERT.
  3. SQL Server: Функция CONVERT — Обзор функции CONVERT на SQL Server.