2016-08-01 12 views
1

他の質問に関する提案を見ました。チックを追加して、日付の値を比較していることを確認しましたが、このコードを動作させることはできません。この声明で私は間違って何をしていますか?それはMYSQL日付比較の問題例外

私に例外を与える

SELECT * from project where project.completed_date >= '2015-01-01' order by customer, projectName

":ます。java.sql.SQLException:javax.servlet.ServletException不明な列 '2015年1月1日を' 'where句'"

日付が列であり値ではないのはなぜですか?

+1

を試してみて、適切な書式設定を行ってください。 – Jay

答えて

1

バックテックではなく、日付の前後に一重引用符(二重引用符)を使用する必要があります。したがって、クエリは次のようになります。

SELECT * 
FROM project 
WHERE project.completed_date >= '2015-01-01' 
ORDER BY customer, projectName 
+0

は一重引用符だけを使用してエラーを取得せず、何も返さないようにしました。 (SELECT * from project.completed_date> = '2015-01-01' order by customer、projectName) – thomas810

+1

一致するデータがないか、おそらく 'completed_date'を' varchar'列(いたずら)にしました。 –

0

文字列と日付を比較しています。その参照の詳細については

SELECT * from project where project.completed_date >= STR_TO_DATE('2015-01-01','%Y-%m-%d') order by customer, projectName 

::のようなクエリを書き換えConverting a date in MySQL from string field

+0

これを試してみましたが、project.completed_date> = STR_TO_DATE('2015-01-01 '、'%Y-%m-%d ')の注文(customer、projectName)何も返されず、コラムに100があるはずです – thomas810

+1

'project.completed_date'の型または形式は何ですか? – cdaiga

+0

ああ、私はOracleデータベースのワイルドカードを使用しました。私はちょうど私の答えを修正した。 – cdaiga

1

SELECT * 
FROM project 
WHERE completed_date >= STR_TO_DATE('2015-01-01', '%Y-%m-%d') 
ORDER BY customer, projectName