- ベストアンサー
日付範囲を展開したレコードを作成する方法
- Oracleでストアドパッケージを作成している場合、与えられた日付範囲を展開してレコードを作成したい場合、ストアド内で実装することが可能です。
- 与えられたデータから、日付の範囲を展開して新しいレコード群を作成したい場合、ストアドを使用することが一般的です。
- Typeは使用できないため、展開後のレコードは別途SQLで利用する必要があります。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- ACCESS97のモジュールで 日付の計算をしたい
以前の例題を検索したのですが 改めて質問します。 ACCESS97のモジュールで 日付の計算をしたいのです。 例えば ある日付を入力すれば、その2週間後の日付を取得したいのです。 テキストボックス "日付"で入力するとします Dim Sdate As Date Dim Edate As Date Sdate = Format(Me.日付, "yy/mm/dd") Edate = Format(Sdate+14, "yy/mm/dd") ← ではエラーになります。 Q どうすればいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- postgreSQLで分からないことがあります。
postgreSQLで分からないことがあります。 よろしくお願いします。 下にあるtblというテーブルがあったとき。 下のSQLを実行するとデータがうまく取れているんですが、 CURRENT_DATEは日付型でSUBSTRでとりだした日付は文字列 なのに何故正しく比較できているのでしょうか? 日付型の形式の文字列であれば、RDBMSがかってに日付型にしてくれるのでしょうか? tblテーブル *sdateとedateはtimestamp型です。 sdate | edate | ----------------------------------------- 2010-5-1 10:00:00 | 2010-5-2 13:00:00| SELECT * FROM tbl WHERE CURRENT_DATE BETWEEN SUBSTR(sdate, 1, 10) AND SUBSTR(edate, 1, 10)
- ベストアンサー
- PostgreSQL
- VBA 日付型を8桁数値へ変換
VBAの中で、Date型の日付をバッチファイルに渡す時に、8桁数値へ変換したいのですが、0埋めのやり方が分からずに困っております。 Date型 yyyy/mm/dd 8桁数値 yyyymmdd Private Sub cmdBSubmit_Click() Dim rc As Integer Dim sDate As Date Dim eDate As Date '開始日・終了日処理 sDate = DateAdd("d", -5, txtsDate) eDate = DateAdd("d", 5, txteDate) Debug.Print "----------------------" Debug.Print "開始日-5:" & sDate Debug.Print "終了日+5:" & eDate 'パブリック変数へ、日付格納 sDateP = Year(sDate) & Month(sDate) & Day(sDate) eDateP = Year(eDate) & Month(eDate) & Day(eDate) Debug.Print "----------------------" Debug.Print "開始日:" & sDateP Debug.Print "終了日:" & eDateP rc = MsgBox("開始日 : " & sDate & vbCrLf & _ "終了日 : " & eDate & vbCrLf & _ "抽出を開始します宜しいですか?", vbYesNo + vbQuestion, "確認") If rc = vbYes Then '集計バッチを実行 'MsgBox "実行" Call 抽出 Else '中止 MsgBox "中止" End If End Sub 'パブリック変数へ、日付格納 sDateP = Year(sDate) & Month(sDate) & Day(sDate) eDateP = Year(eDate) & Month(eDate) & Day(eDate) この書き方だと、月・日が一桁の場合、例えば「2013/01/01」だと、”201311”になってしまいます。 これを、"20130101"にしたいのですが、どう書けば宜しいでしょか? 最初から、8桁日付で入力すればよいのでしょうか、入力した日付の前後5日を自動的に増やす必要がある為に上記の仕様にしてます。
- ベストアンサー
- Excel(エクセル)
- SQLを教えてください。
おせわになります。助けてください。 id | nendo | sdate | edate 0 | 2012 | 2012-04-01 | 2013-03-31 1 | 2013 | 2013-04-01 | 2014-03-31 2 | 2014 | 2014-04-01 | 2015-03-31 2 | 2015 | 2015-04-01 | 2016-03-31 といったデーターベースがあります。 2014/03/31 という日付がどの年度の日付なのかを 調べるSQLをどう書けばいいのかわかりません。 SELECT * FROM m_nendo WHERE sdate <= '2014/03/31' and edate >'2014/03/31' といった書き方をしているのですが、思う結果を取れません。 ネットでどういう言葉で検索したらいいのかも・・・わかりません。 書き方をご存知の方、教えて頂けませんか? よろしくお願いします。
- ベストアンサー
- MySQL
- 片方のテーブルに存在しないレコード取得したい
OracleのSQL文を教えて下さい。 -tableA- key1,key2 001,1 002,2 002,1 003,2 -tableb- key1,key2 001,1 002,1 取得したいレコード 002,2 003,2 お願いします。
- ベストアンサー
- その他(データベース)
- MySQLで、日付最大のレコード抽出
MySQLをJAVAで使っています。 指定キーの中で、一番日付の大きなレコード項目全てを 取り出したいのですが、 下記SQLだと、何も抽出されません。 (今朝、ここで教えて頂いたSQL文です) 何が間違っているのでしょうか? さらに、もっと簡単なSQL文はないでしょうか? SELECT * FROM food WHERE (food_id = 1) AND (food_name = 'みかん') AND (karute_id = (SELECT MAX(date) FROM food WHERE (food_id = 1) AND (food_name = 'みかん'))) 与える検索キー項目は、food_id=1, food_name=みかん foodテーブル例 food_id food_name date --------------------------------- 1 みかん 2015-01-01 1 みかん 2015-02-01 1 みかん null 1 みかん 2015-04-01 2 きんめだい 2015-01-01 2 じんたん 2015-02-01 2 コロッケ 2015-02-01
- ベストアンサー
- MySQL
- MySQLで、日付最大のレコード抽出
MySQLをJAVAで使っています。 指定キーの中で、一番日付の大きなレコード項目全てを 取り出したいのですが、 下記SQLだと、何も抽出されません。 何が間違っているのでしょうか? さらに、もっと簡単なSQL文はないでしょうか? SELECT * FROM food WHERE (food_id = 1) AND (food_name = 'みかん') AND (food_id = (SELECT MAX(date) FROM food WHERE (food_id = 1) AND (food_name = 'みかん'))) 与える検索キー項目は、food_id=1, food_name=みかん foodテーブル例 food_id food_name date --------------------------------- 1 みかん 2015-01-01 1 みかん 2015-02-01 1 みかん null 1 みかん 2015-04-01 2 きんめだい 2015-01-01 2 じんたん 2015-02-01 2 コロッケ 2015-02-01
- ベストアンサー
- MySQL
- 同一レコード更新時の排他制御
Oracle9iです。 C/S開発で、VB.NETで画面を開発します。 DBの更新は、画面よりストアドプロシージャを使って行います。 複数ユーザが同一レコードを同時に参照し、同一レコードに対して更新された場合、参照時の更新日時と異なる場合はエラーとするよう設計されています。(つまり、後更新はエラー) この排他チェックロジックを画面側で実装しようとしておりますが、この排他チェックロジックを画面側で実装せずに、Oracleよりエラーレコードを受け取ることによる排他制御を行うことはできないでしょうか? ご教授のほどよろしくお願いいたします。 また、参考サイトあれば、その紹介だけでも助かります。
- ベストアンサー
- Oracle
- テーブルタブの日付範囲の表示
アクセス2007を使っています。 テーブルA(tblA)には色々なRecord ID, カスタマーID,日付,データ(M, N, O) が入っています。 クエリA(qryA)で欲しい日付の範囲のデータが抽出できるように日付のフィールドに Between [Enter first date:] And [Enter last date:] を抽出条件に付けました。ここまでは、自分ながらうまくいったと思ったんですが、このクエリAで抽出したデータのサマリーが欲しくて、テーブルタブを使ってクエリAのデータを下記のように要約しようとしました。 (01/01/09~02/28/09のサマリー) カスタマーID データ M N O 1 1 1 2 1 2 3 2 1 ところがエラーメッセージが The Microsoft Office Access database engine doesn't recognize'[Enter first date:]'as a valid field name or expression. と出てきます。 そこで SQLビューを見ると TRANSFORM Count(qryA.[Record ID]) AS [Record IDOfCount] SELECT qryA.[カスタマーID], qryA.[日付], Count(qryA.[Record ID]) AS [Total Of Record ID] FROM qryA GROUP BY qryA.[カスタマーID] PIVOT qryA.[データ]; となっていました。 WHERE文がいるんじゃないかと思って WHERE ((tblA.日付) Between [Enter first date:] And [Enter last date:])など入れてみましたが、さっぱりうまくいきません。 QSLも先日勉強し始めたばかりで、今一歩何が悪いのか分かりません。 どなたかどうやって日付範囲のあるテーブルタブの作り方を教えていただけませんでしょうか?
- ベストアンサー
- オフィス系ソフト
- Transact-SQLで順番に日付をセットするには?
主キーが存在しないうえに、まったく同じデータが1万件件あります。 そのデータに対して日付項目だけ 2009/1/1、2009/1/2...といった感じで順番にUPDATEをかけたいのですが Transact-SQLで実装するにはどうすればいいでしょうか?
- 締切済み
- SQL Server
お礼
ありがとうございます。 試して見たところ、思うようなことができそうでした。 ちょっと意味がわからないので、調べながら応用きかせつつ実装してみようかと思います。