Дата и время в отдельных столбцах, время во втором формате, как получить "максимальное время даты"?
-
29-09-2019 - |
Вопрос
Я столкнулся с получением последней записи для детали, и мой единственный способ - сделать это, используя подход "максимальная дата".
Вот базовая схема (и примеры данных):
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