2013-03-13 2 views
1

В настоящее время я запускаю скрипт PHP, который захватывает данные из Facebook и помещает их в мою базу данных SQL. Я хочу теперь узнать, какие сообщения Facebook были опубликованы в течение 2 часов после захвата данных, и я понял, что команда NOW() делает время, которое на 4 часа превышает смещение для сервера Facebook.Изменить строку SQL для установки даты даты

Это подводит меня три вопроса:

1) Есть ли способ сделать выберите команду, где я могу компенсировать дату на 4 часа?

2) Есть ли способ изменить строки для смещения даты на 4 часа?

3) Эти методы на самом деле вернут всю дату, так что если датой будет, скажем, в 1:00 сегодня (13 марта), она будет изменена до 21:00 накануне (12 марта)).

Большое спасибо!

ответ

1

Любое место, которое вы используете дату в SQL вы можете использовать функцию DATEADD, в отборное, во вставке и в котором

DATEADD(hour,4,datevalue) 

Чтобы вернуться просто использовать отрицательное число

DATEADD(hour,-4,datevalue) 

Итак, это

DECLARE @datetime datetime = '2013-03-13 01:01:01.110'; 
SELECT DATEADD(hour, -4, @datetime); 

возвращает это:

2013-03-12 21:01:01.110 
+0

Большое спасибо !! – AdamG

1

1) Есть ли способ сделать команду select, где я могу компенсировать дату на 4 часа?

Да, с помощью DATEADD/DATE_ADD

2) Есть ли способ, чтобы изменить строки, чтобы компенсировать дату на 4 часа?

Вы не должны изменять данные.

3) Эти методы на самом деле вернут всю дату, так что если датой считается, скажем, в 1:00 сегодня (13 марта), она будет изменена на 21:00 днем ​​раньше (12 марта).

Если вы используете функцию DATEADD/DATE_ADD и ваша дата в date типа, то да.

SQL Server Manual

MySQL Manual

Смежные вопросы