Используйте DatatypeConverter.printHexBinary()
. Вы можете прочитать его документацию в http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/DatatypeConverter.html
Например:
byte bytes[] = {(byte)0, (byte)0, (byte)134, (byte)0, (byte)61};
System.out.println(javax.xml.bind.DatatypeConverter.printHexBinary(bytes));
В результате получится:
000086003D
Как вы можете видеть, это приведет к получению шестнадцатеричной строки, представляющей массив байтов с ведущими нулями.
Этот ответ в основном такой же, как в вопросе . В Java, как мне преобразовать массив байтов в строку шестнадцатеричных цифр, сохраняя ведущие нули?
Попробуйте это следующим образом:
FORMAT([Time], N'hhmm') AS [Time]
или
FORMAT([Time], N'hh\:mm') AS [Time]
FORMAT опирается на правила форматирования CLR, которые предписывают, что двоеточия и точки должны быть экранированы. Поэтому, когда строка формата (второй параметр) содержит двоеточие или точку, двоеточие или точка должны быть экранированы обратной косой чертой, когда входное значение (первый параметр) относится к типу данных времени.
blockquote>Это должно работать:
SELECT FORMAT(CAST('09:00:00.1234567' AS TIME(7)), 'hh\:mm') -- 09:00 SELECT FORMAT(CAST('09:00:00.1234567' AS TIME(7)), 'hh\:mm\:ss\.fffffff') -- 09:00:00.1234567
Вы можете проверить документы на дату и время
После предупреждения Ларну
Обновление:
[ 116] Из приведенной выше ссылки вы можете отформатировать время следующим образом:
SELECT FORMAT(cast(GETDATE() as time), N'hh\:mm\:ss');