#sql-server-2008 #time #datetime-format
#sql-server-2008 #время #datetime-формат
Вопрос:
Я обновляю некоторый код SQL Server 2000 до SQL Server 2008R2, и есть функция, которая очень похожа на это, для преобразования времени в 24-часовой формат. Какой более крутой / умный способ сделать это в T-SQL?
Комментарии:
1. Было бы полезно, если бы были опубликованы примеры желаемого результата.
2. Ссылки на внешние сайты, которые задают ваш вопрос, неприемлемы, потому что, если внешний сайт отключается или исчезает, ваш вопрос становится бессмысленным. Кроме того, они недоступны для поиска — содержимого здесь нет. Пожалуйста, отредактируйте свой пост и вставьте в него актуальный вопрос, и, как сказал @pst, опубликуйте пример выходных данных, которые вы пытаетесь получить, и информацию об источнике используемого вами «времени» (например, взято ли оно из реального
DATETIME
столбца или изCHAR/VARCHAR
столбца?). Пожалуйста, помните, что мы абсолютно ничего не знаем о ваших данных или коде, кроме того, что вы нам здесь рассказываете. Спасибо.
Ответ №1:
Если все, что вы хотите, это просто военное время:
SELECT CONVERT(VARCHAR(8), GETDATE(), 108) AS MilitaryTime
Ответ №2:
Если вам нужно время до секунды, то используйте это:
SELECT GETDATE() 'Today',
CONVERT(VARCHAR(8), GETDATE(), 108) 'hh:mi:ss'
ЕСЛИ вам нужно время до миллисекунды, то используйте это:
SELECT GETDATE() 'Today',
CONVERT(VARCHAR(12),GETDATE(),114) 'hh:mi:ss:mmm'
GETDATE()
используется для текущей даты. Вы можете передать здесь любую переменную.