0

日時列から日付部分のみを選択したい。私は言います:

SELECT DISTINCT CONVERT(VARCHAR(10), Intensity.Date, 103) AS [DD/MM/YYYY]
FROM Intensity

そして、その仕事はうまくいきます。しかし、私はJDBCでこのクエリを使用しています:

sql="SELECT DISTINCT CONVERT(VARCHAR(10), Intensity.Date, 103) AS [DD/MM/YYYY] FROM Intensity";
ResultSet r=sta.executeQuery(sql);
String json="";
json=json+"{'data':[";
while(r.next()){
    json=json+"'"+r.getDate("Date")+"',";
}

次のエラーが表示されます: 列名の日付が無効です。
既にAS演算子を使用している場合に列の名前を変更するか、このクエリをより最適な形式に書き直すことは可能ですか?

4

3 に答える 3

0

試してみるだけです。スラッシュ(/)が原因かもしれません。SQL を次のように変換してみてください。

sql="SELECT DISTINCT CONVERT(VARCHAR(10), Intensity.Date, 103) AS [DD\/MM\/YYYY] FROM Intensity";

また

sql="SELECT DISTINCT CONVERT(VARCHAR(10), Intensity.Date, 103) AS [DD//MM//YYYY] FROM Intensity";
于 2013-05-29T05:32:15.817 に答える
0

Robert McKee と Luiggi Mendoze は、コメントを介して正しい答えを持っています (賛成票を投じました):

sql="SELECT DISTINCT CONVERT(VARCHAR(10), Intensity.Date, 103) AS MyDate FROM Intensity";
ResultSet r=sta.executeQuery(sql);
String json="";
json=json+"{'data':[";
while(r.next()){
    json=json+"'"+r.getString("MyDate")+"',";
}
于 2013-05-29T06:35:58.540 に答える