MySQL сравнение дат - PullRequest
       2

MySQL сравнение дат

6 голосов
/ 24 мая 2011

Даты хранятся в БД как таковые: «2011-05-26 11:00:00» в поле даты и времени.Я хотел бы найти все строки, где дата больше, чем первая в этом месяце, например: 2011-05-01 09: 00: 00

Форматы даты в БД не могут быть изменены.Какую функцию MySQL можно использовать для преобразования даты в БД в формат, который может обрабатывать сравнение?Я предполагаю, что лучшим форматом для «первого числа месяца» является метка времени Unix?

Значения времени в датах всегда присутствуют, но только в рабочее время, поэтому с 09:00 до 17:00.

Ответы [ 7 ]

12 голосов
/ 24 мая 2011

Если оно хранится в поле DATETIME, просто запросите WHERE date > '2011-05-01 09:00:00'.

4 голосов
/ 24 мая 2011
$firstDayOfMonth = date( 'Y-m-d H:i:s', mktime(0,0,0,date('n'),1,date('Y'));
$query = "SELECT * FROM `table` WHERE `date` >= '$firstDayOfMonth'";
2 голосов
/ 24 мая 2011

Что-то вроде этого возможно?

$oDateTime = new DateTime();
$sQuery = "SELECT * FROM table WHERE date >= ".$oDateTime->format("Y-m")."-01 09:00:00";
0 голосов
/ 24 мая 2011

Я думаю, что вы можете решить это, как-то так:

во-первых, создайте первый день месяца в формате mysql в php

$firsDay = date('Y-m-d 00:00:00', strtotime(date('Y-m').'-01 00:00:00'));

и затем используйте его в запросе

select * from something where date >= $firsDay
0 голосов
/ 24 мая 2011

DATETIME поля могут быть отфильтрованы так же, как целочисленные поля, например:

SELECT * FROM `table` WHERE `date` > '2011-05-01 09:00:00'

Если вы действительно хотите преобразовать метки времени в Unix, взгляните на функцию UNIX_TIMESTAMP .

0 голосов
/ 24 мая 2011

Вы можете использовать функцию TIMESTAMPDIFF в MySQL для сравнения времени,
Функция FROM_UNIXTIME для форматирования метки времени Unix в качестве даты.

Дополнительные функции и примеры mysql для данных и времени доступны в MySQLСправочное руководство по функции даты и времени .

0 голосов
/ 24 мая 2011

Сравните с датой и временем:

WHERE date_field >= '2011-05-01 00:00:00'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...