2012-03-31 57 views
0

我在我的MySQL數據庫中添加了一個字段,這是一個DateTime字段。使用php存儲在MySQL中的日期時間值獲取日期

立即下載存儲的值時,它是這樣的: - 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

回答

2

取出AS dateonly,你不能使用別名WHERE條款

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

或者你也可以使用DATE()DATETIME列獲取日期。

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

這很有用,非常感謝:) – 2012-03-31 08:20:27

1

我不相信你需要轉換它,如果你今天的日期(即當前日期)後總是你不需要從PHP傳遞日期,你可以只是做:

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

不過是有原因的,你想在日期通過從PHP(用於一個測試),所以你可能要堅持用

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

另外,你可以使用MySQL的CURDATE()功能在您的查詢中取代date("Y-m-d")