0
SELECT DATEDIFF(dd, (SELECT date FROM player WHERE 
date = (SELECT MAX(date) FROM player WHERE name = 'Deuslegio') 
AND name = 'Deuslegio'), CURDATE())

基本上,我要做的就是获取某个玩家姓名的最新行记录日期,并获得与今天日期的差异。但是根据 GoDaddy 上的 phpMyAdmin,我收到了这个错误:

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“CURDATE())”附近使用正确的语法

4

2 回答 2

2

您在DATEDIFF函数中使用了三个参数:

 1. dd 
 2. (SELECT DATE FROM player WHERE DATE = (SELECT MAX(DATE) FROM player WHERE NAME = 'Deuslegio')   AND NAME = 'Deuslegio')
 3. CURDATE()

您只能使用两个。

mySQL 日期信息()

于 2013-07-08T23:41:26.070 回答
0

您可以大大简化您的查询。这是您的查询(通过删除dd

SELECT DATEDIFF((SELECT date
                 FROM player
                 WHERE date = (SELECT MAX(date) FROM player WHERE name = 'Deuslegio'
                              ) AND name = 'Deuslegio'
                ), CURDATE()
               )

以下是等价的:

SELECT DATEDIFF((SELECT date
                 FROM player
                 WHERE name = 'Deuslegio'
                 order by date desc
                 limit 1 
                ), CURDATE()
               )
于 2013-07-09T00:10:43.183 回答