4

编写此查询的正确方法是什么?我的客户表中有一个名为 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'

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

4

2 回答 2

7

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

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
于 2013-09-19T15:36:24.340 回答
0

您可以使用反引号来转义诸如“时间戳”之类的关键字。这对我有用。

select `timestamp` from users;
于 2021-01-13T10:21:10.490 回答