Получение даты из значения datetime, хранящегося в mysql, используя php - PullRequest
0 голосов
/ 31 марта 2012

Я добавил поле в базу данных MySQL, которое является полем DateTime.

Теперь, когда значение сохраняется, это выглядит так: - 2012-03-31 12:13:42

Я прочитал на одном из форумов, что, если мне нужно получить дату только из даты и времени, я должен использовать этот запрос: - SELECT CAST( datetime_field AS DATE) AS dateonly FROM etc...

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

$todayDATE = date("Y-m-d");
$TCRTcount = "SELECT COUNT(*) FROM customers WHERE CAST(`customer_regdate` 
AS DATE) AS dateonly = '$todayDATE'";
$TCRTcount_QE = mysql_query($TCRTcount, $dacreint) or die(mysql_error());
$TCRTcount_QF = mysql_fetch_array($TCRTcount_QE);
$TotalCustomersAddedToday = $TCRTcount_QF[0];

Я выдаю мне следующую ошибку: -

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS dateonly = '2012-03-31'' at line 1

Ответы [ 3 ]

3 голосов
/ 31 марта 2012

Удалите AS dateonly, вы не можете использовать псевдоним в WHERE предложении

SELECT COUNT(*) FROM customers WHERE CAST(`customer_regdate` 
AS DATE) = '$todayDATE';

в качестве альтернативы вы также можете получить дату из столбца DATETIME, используя DATE().

 SELECT COUNT(*) FROM customers WHERE DATE(`customer_regdate`) = '$todayDATE';
1 голос
/ 31 марта 2012

Кроме того, вы можете использовать CURDATE() функцию MySQL в своих запросах вместо date("Y-m-d")

1 голос
/ 31 марта 2012

Я не думаю, что вам нужно разыграть его, и если вы всегда после сегодняшней даты (т.е. текущей даты), вам не нужно передавать дату из PHP, вы можете просто сделать:

SELECT COUNT(*) FROM customers WHERE DATE(`customer_regdate`) = CURDATE()

Однако есть причины, по которым вы захотите передать дату из PHP (тестирование на одну), чтобы вы могли придерживаться

SELECT COUNT(*) FROM customers WHERE DATE(`customer_regdate`) = '$todayDATE'
...