按日期范围从数据库中选择不起作用

时间:2013-11-27 05:55:41

标签: mysql sql

我需要在日期范围之间获取所有数据并导出到CSV,现在导出它的工作,但是日期范围的错误是没有正确地从我的数据库获取数据,我的代码是:

$sql_query = "SELECT user_name AS 'Nome', cpf AS 'CPF do Titular', 
payment_method AS 'Banco', payment_type AS 'Tipo de Pagamento', other_bank AS 'Banco     Distinto', agdetails AS 'Agência', accdetails AS 'Número da Conta', amount AS
 'Valor da Transação', status AS 'Situação da Transferência' FROM $table WHERE status='paid' STR_TO_DATE('process_date','%Y/%m/%d') AND process_date BETWEEN '".$_POST['from']." 00:00:00' AND '".$_POST['to']." 00:00:00'";

这里有什么不对?我刚检查了每个变量的结果,并发送了正确的选定日期,但数据库中的数据还没有到来。

由于

EDITED

我是如何在phpmyadmin上运行SQL的:

SELECT user_name AS  'Nome', cpf AS  'CPF do Titular', payment_method AS  'Banco',    payment_type AS  'Tipo de Pagamento', other_bank AS  'Banco Distinto', agdetails AS  'Agência', accdetails AS  'Número da Conta', amount AS  'Valor da Transação', 
STATUS AS  'Situação da Transferência'
FROM cashbackengine_transactions
WHERE STATUS =  'paid'
AND process_date
BETWEEN  '2013-09-12 00:00:00'
AND  '2013-11-27 00:00:00'
LIMIT 0 , 30

1 个答案:

答案 0 :(得分:2)

尝试此查询 -

SELECT 
user_name AS 'Nome', 
cpf AS 'CPF do Titular', 
payment_method AS 'Banco', 
payment_type AS 'Tipo de Pagamento', 
other_bank AS 'Banco     Distinto', 
agdetails AS 'Agência', 
accdetails AS 'Número da Conta', 
amount AS 'Valor da Transação', 
status AS 'Situação da Transferência' 
FROM $table 
WHERE 
   status='paid' AND 
   process_date BETWEEN str_to_date($from, '%Y-%m-%d 00:00:00') and str_to_date($to, '%Y-%m-%d 00:00:00')

假设 -

$table = "cashbackengine_transactions";
$from = mysql_real_escape($_POST["from"]); 
$to = mysql_real_escape($_POST["to"]);