SQL DATETIME запрос - PullRequest
       13

SQL DATETIME запрос

0 голосов
/ 17 июня 2011

Привет, я пытаюсь сравнить две даты в MySQL с помощью запроса, одна - это дата, когда статья была впервые опубликована, а вторая - когда она должна быть удалена запросом (через 365 дней, запускаемая задачей cronкаждые 30 минут.) ниже приведен мой SQL-запрос

DELETE FROM $wpdb->posts WHERE post_type = 'business' AND DATEDIFF(NOW(), post_date_gmt) > 2 

Моя дата хранится в базе данных в этом формате 2011-05-26 13:10:56, поэтому мой вопрос: будет ли запрос DATETIME учитывать точную дату и время или когда cron запускается на 365-й день, удалите статью, даже если осталось еще 13:10:56 до того, как ей на самом деле 365 дней?

С уважением

1 Ответ

2 голосов
/ 17 июня 2011

Ваш запрос, как написано, удалит все сообщения старше 2 дней - не 365.

Но ответ на ваш вопрос легко проверить:

mysql> SELECT DATEDIFF('2011-01-01 00:10:00','2011-01-01 00:00:00');
+-------------------------------------------------------+
| DATEDIFF('2011-01-01 00:10:00','2011-01-01 00:00:00') |
+-------------------------------------------------------+
|                                                     0 | 
+-------------------------------------------------------+
1 row in set (0.00 sec)

Как выКак видите, DATEDIFF () возвращает целые дни только как целое число.Аналогичный тест с '2011-01-01 23:59:59' в качестве первой даты также даст 0.

Таким образом, короткий ответ на ваш вопрос "Да, он соблюдает дату и время, внизко второму. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...