В этой статье блога мы рассмотрим различные методы установки нуля для минут и секунд в SQL Server. Независимо от того, являетесь ли вы новичком или опытным разработчиком SQL, это руководство предоставит вам несколько решений для решения этой задачи. Итак, давайте углубимся и научимся очищать данные о минутах и секундах в SQL Server!
Метод 1: использование функций DATEADD и DATEDIFF
Пример кода:
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, YourDateTimeColumn), 0) AS ClearedDateTime
FROM YourTable
Объяснение:
Этот метод использует функцию DATEDIFFдля расчета количества минут между базовой датой (0) и столбцом datetime (YourDateTimeColumn). Затем функция DATEADDдобавляет рассчитанные минуты к базовой дате, эффективно очищая данные о минутах и секундах.
Метод 2: использование функций DATEPART и DATEADD
Пример кода:
SELECT DATEADD(MINUTE, -DATEPART(MINUTE, YourDateTimeColumn), YourDateTimeColumn) AS ClearedDateTime
FROM YourTable
Объяснение:
В этом методе функция DATEPARTиспользуется для извлечения минут из столбца даты и времени (YourDateTimeColumn). Затем применяется функция DATEADDдля вычитания извлеченных минут из столбца даты и времени, в результате чего получается очищенное значение даты и времени.
Метод 3: использование функции CONVERT
Пример кода:
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(13), YourDateTimeColumn, 120) + ':00:00', 120) AS ClearedDateTime
FROM YourTable
Объяснение:
Здесь функция CONVERTиспользуется для преобразования столбца даты и времени (YourDateTimeColumn) в форматированную строку без минут и секунд. Затем строка объединяется с ':00:00', чтобы обнулить минуты и секунды. Наконец, результат преобразуется обратно в значение даты и времени.
Метод 4: использование функции DATEFROMPARTS
Пример кода:
SELECT DATEFROMPARTS(YEAR(YourDateTimeColumn), MONTH(YourDateTimeColumn), DAY(YourDateTimeColumn)) AS ClearedDateTime
FROM YourTable
Объяснение:
Этот метод использует функцию DATEFROMPARTSдля извлечения года, месяца и дня из столбца даты и времени (YourDateTimeColumn). Опуская компоненты времени, результат эффективно очищает данные о минутах и секундах.
Метод 5: использование команды SET DATEFORMAT
Пример кода:
SET DATEFORMAT ymd;
SELECT CAST(CONVERT(VARCHAR(10), YourDateTimeColumn, 120) + ' 00:00:00' AS DATETIME) AS ClearedDateTime
FROM YourTable
Объяснение:
Здесь команда SET DATEFORMATиспользуется для установки формата даты 'yyyy-mm-dd', обеспечивая единообразие форматирования. Затем применяется функция CONVERTдля преобразования столбца даты и времени (YourDateTimeColumn) в форматированную строку с добавлением ' 00:00:00'для установки минут и секунд. нуль. Наконец, результат преобразуется обратно в значение даты и времени с помощью функции CAST.