SELECT DISTINCT b.title, b.litpic, c.filmtime, b.ID aid
FROM dede_addonsession a
INNER JOIN dede_archives b ON b.ID = a.filmID
INNER JOIN dede_addonmovie c
WHERE c.aid = a.filmID
AND screeningsdate = CURDATE( )
ORDER BY c.filmtime DESC
LIMIT 0 , 4就是这条语句,数据库在windows平台下的时候,可以成功的读取出数据,
但是最近数据库割接到linux平台下后,这条语句就读取不到数据了,为空。 但是其他的语句又运行正常, 请各位看看,谢谢了
FROM dede_addonsession a
INNER JOIN dede_archives b ON b.ID = a.filmID
INNER JOIN dede_addonmovie c
WHERE c.aid = a.filmID
AND screeningsdate = CURDATE( )
ORDER BY c.filmtime DESC
LIMIT 0 , 4就是这条语句,数据库在windows平台下的时候,可以成功的读取出数据,
但是最近数据库割接到linux平台下后,这条语句就读取不到数据了,为空。 但是其他的语句又运行正常, 请各位看看,谢谢了
把错误打出来就知道了啊
echo mysql_error();
如果语句运行正常,数据库结构也相同的话,
我觉得第一可能是数据库版本不同,
像一楼说的
screeningsdate = CURDATE( ) ,
这句话先去掉,如果有结果,就说明这里错了。
你可以看下select CURDATE( );
结果是什么,没准第二可能是数据库服务器设置的时间和web服务器时间有出入。即使这里没错,我也建议楼主改成screeningsdate =".date('Y-m-d',time())."这样
我觉得mysql里还是能不用函数就不用。
能算好的就都在外面算好了,不要无形去加重服务器的负担。
我记得(我记得啊,呵呵,因为我都是按照时间戳比较的,我放数据库的时间都是时间戳,不会放2009-01-15 00:00:00这种的,所以以至于养成了习惯,现在也根本没研究过mysql的时间数据类型)
好像是mysql4和更早的版本里的时间类型字段比较根本没有按时间真正大小比较,而是按字符比较的,如果这样的话就肯定有问题。window表名默认使不分大小写的,
linux,表名默认是分大小写的,其他不清楚。
不过楼主既然说正确运行没有报错,就不该是这里的问题。
-> '2008-06-13'
mysql> SELECT CURDATE() + 0;
-> 20080613
看5.1手册,
这样处理时间应该可以.