编写此查询的正确方法是什么?我的客户表中有一个名为 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'
并且总是没有结果(应该有数千个)
最佳答案
您不得在列名周围使用单引号,因为它们是标识符。
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
关于MySQL - 列名已命名为 'TimeStamp' ,需要在 Where 子句中使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18899045/