Дата и время в отдельных столбцах, время во втором формате, как получить максимальную дату и время? - PullRequest
1 голос
/ 01 декабря 2010

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

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

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

То, что у меня есть выше, это ldDate без времени и ldTime , но не надлежащее представление в формате ЧЧ: ММ: СС, это секундыначиная с полуночи, поэтому первая строка будет иметь вид:

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

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

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

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

Спасибо ...

1 Ответ

4 голосов
/ 01 декабря 2010

Выражение

DATEADD(second, ldTime, ldDate)

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

SELECT ldPart, MAX(DATEADD(second, ldTime, ldDate)) AS MaxCombinedDate
  FROM yourtable
 GROUP BY ldPart
...