Дата и время в отдельных столбцах, время во втором формате, как получить "максимальное время даты"?

StackOverflow https://stackoverflow.com/questions/4327678

Вопрос

Я столкнулся с получением последней записи для детали, и мой единственный способ - сделать это, используя подход "максимальная дата".

Вот базовая схема (и примеры данных):

ldDate                  ldTime  ldPart          id
2010-10-26 00:00:00.000 52867   90-R6600-4100   186
2010-11-01 00:00:00.000 24634   90-R6600-4100   187
2010-11-24 00:00:00.000 58785   90-R6600-4100   194
2010-11-24 00:00:00.000 58771   90-R6600-4100   195
2010-11-17 00:00:00.000 29588   90-R6600-4100   201
2010-11-08 00:00:00.000 29196   90-R6600-4100   282
2010-11-08 00:00:00.000 29640   90-R6600-4100   290
2010-10-19 00:00:00.000 58695   90-R6600-4100   350
2010-09-22 00:00:00.000 32742   BH4354-F0       338
2010-09-22 00:00:00.000 32504   BH4354-F0       340
2010-11-17 00:00:00.000 31157   BH4354-F0       206
2010-11-08 00:00:00.000 27601   BH4354-F0       218
2010-11-08 00:00:00.000 27865   BH4354-F0       21
2010-09-22 00:00:00.000 23264   BR6950-F0       70
2010-09-22 00:00:00.000 23270   BR6950-F0       77
2010-09-24 00:00:00.000 27781   BR6950-F0       97
2010-11-24 00:00:00.000 57735   BR6950-F0       196

То, что у меня есть выше, - это Дата рождения не имея времени, и Время ожидания но это не правильное представление HH: MM: SS, прошло несколько секунд с полуночи, поэтому первая строка будет:

2010-10-26 00:00:00.000 52867 или если я переведу время:

52 867 секунд = 14.6852778 часов ~2010-10-26 14:68:52

Есть ли простой способ объединить оба столбца в моем SQL-запросе?Я хочу сделать простой max (ldCombinedDate) и сгруппировать по ldPart (номеру детали).

Идентификатор, практически бесполезен, так что игнорируйте его, он есть прямо сейчас, для какого порядка была вставлена запись, может быть, ничего другого для вложенного запроса?ПРИМЕЧАНИЕ:Порядок ввода не означает последнюю дату...

Спасибо...

Это было полезно?

Решение

Выражение

DATEADD(second, ldTime, ldDate)

вернет объединенную дату.Итак, я предполагаю, что вы хотите что-то вроде этого:

SELECT ldPart, MAX(DATEADD(second, ldTime, ldDate)) AS MaxCombinedDate
  FROM yourtable
 GROUP BY ldPart
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top