MySQL - 列名已经命名为'TimeStamp',需要在Where子句中使用它

Ken*_*Ken 4 mysql sql linqpad

编写此查询的正确方法是什么?我的customers表中有一个名为TimeStamp的列.我在2012年尝试找到创建帐户的客户时遇到错误.我尝试过:

SELECT 'TimeStamp' AS CreatedDate
FROM customers
WHERE 'CreatedDate' >= '2012-01-01' AND 'CreatedDate' <= '2012-12-31'
Run Code Online (Sandbox Code Playgroud)

并且

SELECT *
FROM customers
WHERE 'TimeStamp' >= '2012-01-01' AND 'TimeStamp' <= '2012-12-31'
Run Code Online (Sandbox Code Playgroud)

并且总是没有结果(应该有数千)

Joh*_*Woo 5

您不得在列名称周围使用单引号,因为它们是标识符.

SELECT *
FROM customers
WHERE TimeStamp >= '2012-01-01' AND TimeStamp <= '2012-12-31'
Run Code Online (Sandbox Code Playgroud)

如果您的列名称是保留关键字,则可以使用backtick例如,

WHERE `select` ....    -- SELECT is a reserved keyword
Run Code Online (Sandbox Code Playgroud)

或者与tableName一起使用它

FROM tb
WHERE tb.select ....   -- SELECT is a reserved keyword
Run Code Online (Sandbox Code Playgroud)