2016-07-07 6 views
0

У меня есть две таблицы, в них есть штампы даты и времени. Каждая таблица имеет новую запись каждые 60 секунд (приблизительно). Я хотел бы совместить время, исключая секунды, но не могу понять, как снять секунды.соединяйте таблицы по дате времени (зачистка секунд)

SELECT t1.ts, t2.ts FROM t1 JOIN t2 ON FORMAT([t1.ts], 'YYYY-MM-dd HH:mm') = FORMAT([t2.ts], 'YYYY-MM-dd HH:mm')

+1

Пожалуйста, отметьте свой вопрос в базе данных, которую вы используете. И почему ваш запрос не работает? –

+0

, если вы находитесь на sql 2012+, то, что вы написали, должно работать – Matt

+0

FYI: Вы выбираете версии, у которых все еще есть секунды. Возможно, это вводит вас в заблуждение? –

ответ

1

Используйте целочисленное деление, чтобы соответствовать по минутам:

SELECT t1.ts, t2.ts 
FROM t1 
JOIN t2 ON TO_SECONDS(t1.ts) DIV 60 = TO_SECONDS(t2.ts) DIV 60 

TO_SECONDS() возвращает количество секунд с нулевого года и DIV отбрасывает дробную часть от деления, так что выражение TO_SECONDS(...) DIV 60 это эффективно количество целых минут с нуля года.

+0

Это работает! Большое спасибо. –