编写此查询的正确方法是什么?我的customers表中有一个名为TimeStamp的列。我在2012年尝试找到创建帐户的客户时遇到错误。我试过了:
SELECT 'TimeStamp' AS CreatedDate
FROM customers
WHERE 'CreatedDate' >= '2012-01-01' AND 'CreatedDate' <= '2012-12-31'
以及
SELECT *
FROM customers
WHERE 'TimeStamp' >= '2012-01-01' AND 'TimeStamp' <= '2012-12-31'
并且始终没有结果(应该有数千人)
答案 0 :(得分:5)
您不得在列名称周围使用单引号,因为它们是标识符。
SELECT *
FROM customers
WHERE TimeStamp >= '2012-01-01' AND TimeStamp <= '2012-12-31'
如果您的列名称是保留关键字,则可以使用backtick
转义它,例如,
WHERE `select` .... -- SELECT is a reserved keyword
或与tableName一起使用
FROM tb
WHERE tb.select .... -- SELECT is a reserved keyword
答案 1 :(得分:0)
您可以使用反引号来转义诸如“timestamp”之类的关键字。这对我有用。
select `timestamp` from users;