4

このクエリを記述する適切な方法は何ですか? 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'

常に結果が得られません(数千あるはずです)

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 に答える