![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
javaの勉強を始めたばかりの初心者です。
少し場所をお借りさせていただきたいと思います。
1、データベース上に全社員の勤怠を記録したテーブルがあります。(キーは社
員IDとdate型の日付です)
2、ここで、ログイン時にセッション変数に格納した社員IDと指定専用ページ
で指定された「年月」を使い、
この社員の1ヶ月分の出勤した日の出勤時刻~休入~休終~退勤時刻(全てtime
型です)を一覧表示したいのです。
ここで、2番で年と月しか指定していないので、
文字列の足し算を行ってもDB上はdate型で型があいません。
ですので年+月+*のようにワイルドカードを使用したいのです。
ResultSet rs=sttSql.executeQuery("SELECT * FROM kintai WHERE id='" +
u_id<<社員id>> + "' AND like date='" + gdate<<年+月>> + *"');
のように指定しているのですが、文法エラーが出てしまいます。
単純ミスかも知れませんがそれがわからなくて困っています。。
ちなみに社員idの指定後のSQL文("'AND~~*"')を抜けばコマンドは通ります。
よろしければご教示いただければと思います。
どうかよろしくお願いします。
下記に前後のソースを記載します。
<%@---------%>
<!--html文-->
<%
String gdate=(request.getParameter("year"))+(request.getParameter
("month"));
String u_id=session.getAttribute("id").toString();
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/kintai");
Connection db=ds.getConnection();
Statement sttSql=db.createStatement();
ResultSet rs=sttSql.executeQuery("SELECT * FROM kintai WHERE id='" +
u_id + "' AND like date='" + gdate + "');
while(rs.next()){
String strDate=rs.getString("date");
String strTbegin1=rs.getString("t_begin");
String strTend1=rs.getString("t_end");
String strRbegin1=rs.getString("r_begin");
String strRend1=rs.getString("r_end");
String strDay=strDate.substring(8,10);
String strTbegin2=strTbegin1.substring(0,5);
String strTend2=strTend1.substring(0,5);
String strRbegin2=strRbegin1.substring(0,5);
String strRend2=strRend1.substring(0,5);%>
<tr>
<td><%=strDay %>日</td>
<td><%=strTbegin2 %></td>
<td><%=strTend2 %></td>
<td><%=strRbegin2 %></td>
<td><%=strRend2 %></td>
</tr>
<!--後始末(close)-->
<!--html文-->
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
気になったことが・・・
ResultSet rs=sttSql.executeQuery("SELECT * FROM kintai WHERE id='" + u_id + "' AND like date='" + gdate + "');
AND like date='年 + 月'になってるけど
AND date like '年 + 月 + *'じゃないの?
あと
'" + gdate + "');は
'" + gdate + "'");
これか
String gdate=(request.getParameter("year")) + (request.getParameter("month") + "*");
ResultSet rs=sttSql.executeQuery("SELECT * FROM kintai WHERE id='" + u_id + "' AND date like '" + gdate + "'");
または
String gdate=(request.getParameter("year")) + (request.getParameter("month"));
ResultSet rs=sttSql.executeQuery("SELECT * FROM kintai WHERE id='" + u_id + "' AND date like '" + gdate + "*'");
になるのでは?
それとも単なるコピペミス?
ワイルドカードを使いたいなら
cast(date as varchar) like '200801*'
でやれば検索できると思います。(上はPostgreSQL、Oracleならvarchar2)
No.2
- 回答日時:
Oracleならば TO_CHARなどにCASTすれば
よいと思います
http://oracle.se-free.com/dml/07_todate.html
参考URL:http://oracle.se-free.com/dml/07_todate.html
No.1
- 回答日時:
やり方はいくつかあると思いますが。
1.date > 指定した年月の1日 and date < 翌月1日
2.DBの関数を使用してDate型を文字列と扱い LIKE '200808%' で検索する。
とかですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascript クリックすると、あ...
-
ハイパーリンクを別ウインドウ...
-
テーブル内に表示されている数...
-
マウスをブラウザの外に出した...
-
JavaScriptでテーブルをクリッ...
-
HTMLのテーブルについて
-
JavaScriptで特定のtdタグにcla...
-
【至急】チェックボックスを用...
-
エラーで悩んでます。。
-
セレクトタグで選択したものを...
-
テーブル行のクリックでチェッ...
-
JavaScript上で文字化け
-
プルダウンで選択すると、DBの...
-
JavaScriptで、テーブルクリッ...
-
スクロールバーの表示位置を変...
-
テーブルで複数行をまとめて非...
-
jQueryでクリックされたテーブ...
-
jspのエラー
-
【JavaScript】tableタグを利用...
-
右の一覧表から必要なものをク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定<table>内の<td>の色を変える
-
プルダウンで選択すると、DBの...
-
一覧から選択した行の行番号を...
-
tableの任意行にfocusをあてる
-
ハイパーリンクを別ウインドウ...
-
JavaScriptで特定のtdタグにcla...
-
JavaScriptでテーブルをクリッ...
-
【UWSC】HTML内のある部分を抽...
-
至急!GetElementById でtdの...
-
チェックボックスにチェックが...
-
JavaScriptでテーブルの行入れ替え
-
動的なtableの値を取得したい
-
Selenium.ChromeDriverの使い方...
-
二次元配列に数字をランダムに...
-
Excelで作ったhtmlファイルのサ...
-
スクロールバーの表示位置を変...
-
テーブルの変数について
-
マウスをブラウザの外に出した...
-
テーブル行のクリックでチェッ...
-
jquery datatablesを使用 イン...
おすすめ情報