2015-04-01 102 views
0

I'have在PHP在我的SQL查询的问题:SQL查询在PHP日期

如果我做的:

$result = mssql_query("SELECT xx FROM x JOIN x ON x WHERE x = '".$var1."' 
AND x BETWEEN '20150401 00:00:00' AND '20150401 23:59:59' ") 

这是工作

但是,如果我做的:

$day=date("d/m/Y",time()); 
$exploDate = explode("/", $day); 
$dateStart = $exploDate[2].$exploDate[1].$exploDate[0]." 00:00:00"; 
$dateEnd = $exploDate[2].$exploDate[1].$exploDate[0]." 23:59:59"; 
$result = mssql_query("SELECT xx FROM x JOIN x ON x WHERE x = '".$var1."' 
AND x BETWEEN '".$dateStart."' AND '".$dateEnd."' ") 

这是行不通的!

我不明白为什么
你有什么想法吗?

谢谢

+0

你真的意味着 “从X JOIN X”?为什么名称为mssql_query,如果它是MySQL - 非常混乱。 – jarlh 2015-04-01 14:40:33

+0

Echo out或var_dump你的变量,其中一个或多个可能不是你认为的那样。 – 2015-04-01 14:42:01

+0

在调用查询之前,尝试使用'echo $ dateStart'和'echo $ dateEnd'来查看您输入的值是否正确。 – 2015-04-01 14:43:40

回答

2

KISS Principle

date('Y-m-d 00:00:00')."' AND '". date('Y-m-d 23:59:59') 

$today = date('Y-m-d'); 
// ... 
... "BETWEEN '" . $today . " 00:00:00' AND '" . $today . " 23:59:59'" 
+0

这将工作与第一个查询的日期格式?看起来他的原始格式将年份,月份和日期挤在一起,没有分离。 – 2015-04-01 14:50:22

+0

有一个date()函数的手册。你可以使用'date(“Ymd”)'以及 - 一旦你阅读手册 - 甚至产生“2015年是情人的一年!”如果你想:'echo date('Y \ Y \ e \ a \ r \ o \ f \ l \ o \ v \ e \ r \ s');'。 – yergo 2015-04-01 14:55:13