2014-07-10 191 views
1
SELECT checkIn,checkOut 
FROM TIMESTAMP 
WHERE UId='2' 
    AND checkIn >= CONVERT(datetime, '2014-07-10') 
    AND checkIn <= CONVERT(datetime,'2014-07-23 23:59:59') 

此查询在'2014-07-10'附近产生语法错误)AND checkIn < = CONVERT(datetime,'2014-07-23 23:59:59')。基本上我只是想在这两个日期之间得到checkIn的值。我在查询中错过了什么吗?SQL:查询语法错误

+5

如果根据您的标签,您正在使用[tag:mysql],那么您没有正确使用它。这里是mysql的[CAST和CONVERT]文档(http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast)。您似乎正在使用SQL Server的'CONVERT'语法。 –

+0

另外,要小心,因为如果你使用的是MySQL 5.6,你可能会由于小数秒而在查询中丢失一秒。 – jynus

+1

不确定这是jynus是指什么,但使用半开放间隔会使这个阅读更清晰 - 'checkIn> ='2014-07-10'AND checkIn <'2014-07-24'' 。 –

回答

0

CONVERT的语法是CONVERT('2014-07-23 23:59:59' using utf8),用于转换字符串的字符集,而不是执行转换。

如果签入一个日期时间值,你可以用

SELECT checkIn,checkOut 
FROM TIMESTAMP 
WHERE UId='2' 
    AND checkIn BETWEEN '2014-07-10' AND '2014-07-23 23:59:59' 

UPDATE:看来阅读,它可以用于铸造的手册,但参数的顺序是在您的示例不正确。

+0

哦,谢谢你!它现在有效。现在我可以进入我的下一个问题。 – user3799541