У меня есть два вопроса относительно запроса данных в SQL, использующих метки времени Epoch. Я в состоянии преобразовать дату в моем ЗЕЬЕСТЕ, используя этот текст:SQL Epoch Time «Where» Statement
DATEADD(HOUR, -4, DATEADD(SECOND, aa.fldTimeOfEvent, '1970-01-01 00:00:00'))
мне пришлось использовать «час, -4», чтобы преобразовать его восточное время перехода на летнем. Мне интересно, если мне нужно будет отрегулировать это до -5 в ноябре, когда закончится летнее время? Есть ли способ сформулировать инструкцию SELECT, чтобы она автоматически настраивалась для DST? Это будет частью автоматизированного отчета, и я боюсь, что мы можем пропустить изменение этого значения.
Другой вопрос: как использовать инструкцию WHERE для получения данных за определенный день. Например, если бы я хотел, чтобы оператор WHERE захватывал все записи, которые произошли в любое время сегодня (7/14/16), как мне это сделать? Я попытался это заявление:
WHERE DATEADD(HOUR, -4, DATEADD(SECOND, aa.fldTimeOfEvent, '1970-01-01 00:00:00')) = '2016-07-14'
Он появляется только захватить записи, которые в точности равна полуночи того же дня (я думаю). Я хочу, чтобы все записи происходили в любое время дня.
Заранее за вашу помощь.
Вы можете использовать GetUTCDate() для вычисления текущего смещения вместо жесткого кодирования. 'SELECT DATEDIFF (hour, GetUTCDate(), GETDATE())' --Сообщение SQL Server –
Используете ли вы SQL Server? Если да, добавьте этот тег в свой вопрос. –
Возможно, вам понадобится [создать пользовательскую функцию] (http://stackoverflow.com/questions/19732896/how-to-create-daylight-savings-time-start-and-end-function-in-sql-server) для обработки летнего времени. –