MySQL: как запросить дату больше, чем сегодня, когда дата в строке - PullRequest
1 голос
/ 21 ноября 2008

Я пытаюсь извлечь информацию из БД MySQL в БД MS SQL. БД беспорядок, и разработчик больше не доступен.

Все даты указаны в символьных полях, и я использую

SELECT concat( mid(DueDate, 7, 4), mid(DueDate, 4, 2), mid(DueDate, 1, 2)) as DueDate FROM TableName

чтобы получить поле даты в формате, чтобы MS SQL-сервер мог их импортировать.

Теперь я хочу экспортировать только запись с датой больше, чем сегодня, поэтому вопросы:

  • Что эквивалентно GetDate () в MySQL?
  • Есть ли лучший способ привести дату для сравнения?

Ответы [ 2 ]

11 голосов
/ 21 ноября 2008

В MySQL вы можете преобразовать строку в дату, используя функцию STR_TO_DATE .

Пример использования:

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
        -> '2004-04-31'

Чтобы получить текущую дату в MySQL, просто используйте функцию NOW (). Затем вы можете проверить, была ли проанализированная дата позже, чем сегодня, используя что-то вроде

WHERE STR_TO_DATE('04/31/2009', '%m/%d/%Y') > NOW()
1 голос
/ 22 ноября 2008

MySQL эквивалентно getdate (): CURDATE ()


mysql> select IF(CURDATE()<NOW(), 1, 0);
+---------------------------+
| IF(CURDATE()<NOW(), 1, 0) |
+---------------------------+
|                         1 | 
+---------------------------+
1 row in set (0.00 sec)

mysql> select IF(CURDATE()=NOW(), 1, 0);                                                                            +---------------------------+
| IF(CURDATE()=NOW(), 1, 0) |
+---------------------------+
|                         0 | 
+---------------------------+
1 row in set (0.00 sec)

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