Преобразование DateTime в VarChar в формате yyyy-mm-dd
Быстрый ответ
Для преобразования DateTime
в VarChar
вам будет полезной функция CONVERT()
:
SELECT CONVERT(VARCHAR, YourDateTimeColumn, 120) -- Классический формат: гггг-мм-дд чч:мм:сс
Если ваша работа связана с SQL Server 2012 или более поздней версией, примените функцию FORMAT()
для гибкой настройки формата:
SELECT FORMAT(YourDateTimeColumn, 'yyyy-MM-dd HH:mm:ss') -- Настраиваем формат под свои нужды
Замените YourDateTimeColumn
на название вашего столбца с датой и временем.
Если вам нужна только дата:
SELECT CONVERT(VARCHAR(10), YourDateTimeColumn, 23) -- Краткий формат: гггг-мм-дд
Или для извлечения даты без времени:
SELECT LEFT(CONVERT(VARCHAR, YourDateTimeColumn, 120), 10) -- Сокращенное пространство, результат: гггг-мм-дд
Подробнее о функции 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
– вкусный кусочек этого пирога:
🕓: 2023-04-01 14:30:00
-- DateTime, объёмный и аппетитный пирог!
🍰: '2023-04-01 14:30:00'
-- VarChar, отрезанный и объемлющий кусочек этого пирога!
CONVERT()
отрезает именно тот кусок, который подходит для 'VarChar':
SELECT CONVERT(VARCHAR, GETDATE(), 120);
-- SQL-печать времени в формате 120
Процесс преобразования даты и времени в строковый формат:
🕓 ➡️ 🍰: 'ГГГГ-ММ-ДД ЧЧ:ММ:СС'
// Как кондитер, превращающий пирог в удобный для хранения торт!
Точность — это ключ к успеху в 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) -- Обрезаем временную метку, оставляя только дату
Лаборатория экспериментов со стилями
Протестируйте различные стили, как вы примеряете одежду в магазине:
SELECT CONVERT(VARCHAR, YourDateTimeColumn, style_number) FROM (VALUES (0), (1), (100), (101), (120), (121), (130), (131)) AS Styles(style_number)
-- SQL как примерочная кабина для ваших данных
Полезные материалы
- CAST и CONVERT (Transact-SQL) – SQL Server | Microsoft Learn — Официальная документация по функциям CAST и CONVERT.
- Преобразование даты и времени с использованием SQL Server — Все о стилях даты и времени для CAST и CONVERT.
- SQL Server: Функция CONVERT — Обзор функции CONVERT на SQL Server.