Как конвертировать чч: мм: сс в чч: мм в SQL Server?

Я вижу, что некоторые решения были предоставлены, но не какие-либо причины, поэтому я объясню это подробно, поскольку считаю, что важно знать, что вы делаете неправильно, чтобы просто получить «что-то», которое работает с данными ответами.

Во-первых, давайте посмотрим, что должен сказать Oracle

 * <p>The returned array will be "safe" in that no references to it are
 * maintained by this list.  (In other words, this method must
 * allocate a new array even if this list is backed by an array).
 * The caller is thus free to modify the returned array.

. Это может показаться неважным, но, как вы увидите, это ... Так что же может произойти следующая строка? Все объекты в списке - String, но они не преобразуют их, почему?

List<String> tList = new ArrayList<String>();
tList.add("4");
tList.add("5");
String tArray[] = (String[]) tList.toArray();   

Возможно, многие из вас подумают, что этот код делает то же самое, но это не так.

Object tSObjectArray[] = new String[2];
String tStringArray[] = (String[]) tSObjectArray;

Когда на самом деле письменный код делает что-то подобное. Джавадок говорит это! Он установит новый массив, что это будет из объектов !!!

Object tSObjectArray[] = new Object[2];
String tStringArray[] = (String[]) tSObjectArray;   

Так tList.toArray создает объекты, а не строки ...

Следовательно, естественное решение, которое не упоминалось в этом потоке, но это то, что Oracle рекомендует, это следующее

String tArray[] = tList.toArray(new String[0]);

Надеюсь, что это достаточно ясно.

13
задан Pang 6 February 2017 в 03:55
поделиться

6 ответов

It's in Xcode's build options. The drop down on the top left corner that says something like "myapp - 3.0 | Debug" Выберите сборку, которую хотите, и нажмите «Готово».

select Count(Page) as VisitingCount,Page,CONVERT(VARCHAR(8),Date, 108) from scr_SecuristLog   
where Date >= '2009-05-04 00:00:00'
      AND Date < DATEADD(minute, 1, '2009-05-06 14:58')
and [user] in(select USERNAME             
    from scr_CustomerAuthorities )  
group by Page,Date order by [VisitingCount] asc

Это решение будет эффективно использовать индексы на Дата

8
ответ дан 1 December 2019 в 18:49
поделиться
SELECT Convert(varchar(5), GetDate(), 108)

Использование varchar (5) автоматически усекает дату, чтобы удалить секунды.

6
ответ дан 1 December 2019 в 18:49
поделиться

Я не думаю, что есть встроенная функция; обычно делают что-то вроде этого

SET @time = '07:45'
SET @date = CONVERT(DATETIME,@time)
SELECT @date

SELECT LEFT(CONVERT(VARCHAR,@date,108),5) 
2
ответ дан 1 December 2019 в 18:49
поделиться

Для этой конкретной необходимости вы должны использовать метод промежуточного анализа, как отмечено в ответе Кассного . Тем не менее, общую проблему можно решить с помощью:

select dateadd(second, -datepart(second, @date), @date)
1
ответ дан 1 December 2019 в 18:49
поделиться

КОНВЕРТ (VARCHAR (5), дата, 108) - Получает только ЧЧ: мм

23
ответ дан 1 December 2019 в 18:49
поделиться

Одним из способов будет использование функции RIGHT () для обрезки даты. Примерно так:

RIGHT(CONVERT(VARCHAR(8),Date, 108),5)

Это будет работать только в том случае, если количество символов постоянное, например, если это применимо, есть начальный ноль. (К сожалению, здесь нет сервера SQL для тестирования).

Лучший способ - использовать функцию datepart T-SQL для разделения, а затем повторного объединения частей даты так:

DARTPART("hh", CONVERT(VARCHAR(8),Date, 108))+":"+DARTPART("mi", CONVERT(VARCHAR(8),Date, 108))

Ссылки:

http://msdn.microsoft.com/en-us/library /ms174420.aspx
http://msdn.microsoft.com/en-us/library/ms187928.aspx
http://msdn.microsoft.com/en-us/library/ms177532.aspx

1
ответ дан 1 December 2019 в 18:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: