我需要從記錄是一個月的數據庫中獲取行。我試過這個SELECT:SELECT行由DATEPART()
$result = mysql_query("SELECT * FROM my_table WHERE DATEPART('month', date_column)=11");
在數據庫中有很多行在11個月有一個日期,但我沒有得到任何結果。 任何人都可以幫助我嗎?謝謝!
我需要從記錄是一個月的數據庫中獲取行。我試過這個SELECT:SELECT行由DATEPART()
$result = mysql_query("SELECT * FROM my_table WHERE DATEPART('month', date_column)=11");
在數據庫中有很多行在11個月有一個日期,但我沒有得到任何結果。 任何人都可以幫助我嗎?謝謝!
MySQL中沒有DATEPART
函數。改爲使用MONTH(date_column)
或EXTRACT(MONTH FROM date_column)
。
如果您在date_column上有一個索引,並且您關心性能,最好不要在該列上應用函數。 (請注意,此解決方案,不要anwsers你問什麼,becouse它還涉及到一年)
-- For mysql specific:
SELECT * FROM my_table
WHERE date_column >= '2012-11-01'
and date_column < '2012-11-01' + INTERVAL 1 MONTH
-- For tsql specific:
SELECT * FROM my_table
WHERE date_column >= '2012-11-01'
and date_column < DATEADD(month,1,'2012-11-01')
如果DATEPART不工作MYSQL然後你可以使用:
SELECT * FROM MyTable WHERE MONTH(joinningDate)=MONTH(NOW())-1 and YEAR(joinningDate)=YEAR(NOW());
它會返回上個月插入MyTable的所有記錄。
請不要使用'mysql_ *'函數,因爲它們在[deprecation process](http://news.php.net/php.internals/53799)中。改爲使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php),[be一個更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –
date_column類型是:\t date – user1827257
即使最小的錯誤處理,你也會發現爲什麼這不起作用:'$ result = mysql_query(...)或die(mysql_error());'。永遠不會假設查詢成功。總是檢查錯誤。對於'MONTH()' –