![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
例えば、
商品コード(PRIMARY),売れた日
というカラムがあるDBのテーブルがあって、
これでどの商品がいつ売れたのかを管理しているとします。
このテーブルから、商品Aが先月何個売れたか、N月に何個売れたか、先週何個売れたか、ここ半年の週別売り上げ個数一覧・・・
のようなデータを取得するプログラムを組もうとしています。
しかし日付の計算の仕方がどうにもわからず困っています。
「今日の日付」という情報から、上記のような情報がSQLで取れるようにするための時間的条件を指定できる日付情報の算出の仕方を教えてください。
お願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
MySQL的な先月の選択
SELECT * FROM テーブル
WHERE DATE_FORMAT(CURDATE(),'%Y-%m-01') - INTERVAL 1 MONTH AND DATE_FORMAT(CURDATE(),'%Y-%m-01') - INTERVAL 1 DAY
>過去1年間の月毎の売り上げ
これをやるなら、何年何月という情報をあらかじめフィールドで持っていない
とSQLとしてはきちんとしたチューニングはできません。
とりあえずGROUP BY (DATE_FORMAT(売れた日,'%y%m'))などで集計はできます
(たぶんインデックスがきかないですけど)
No.3
- 回答日時:
再度回答します。
PHPでも日付の計算ができます。
日付関連の計算についてキレイにまとめてある記事を発見しましたので、
参考URLに記載しておきますね。
参考URL:http://www.hoge256.net/2007/08/63.html
No.2
- 回答日時:
PHPで求めたいなら
echo "1日前は" . date("Y/m/d",strtotime("-1 day" ,strtotime("now"))) . "\n";
echo "1ヶ月前は " . date("Y/m/d",strtotime("-1 month" ,strtotime("now"))) . "\n";
echo "1年前は " . date("Y/m/d",strtotime("-1 year",strtotime("now"))) . "\n";
echo "1週間前は " . date("Y/m/d",strtotime("-1 week" ,strtotime("now"))) . "\n";
とかすれば取得できます。
MYSQLで求めたいなら date_addを使えばいいと思います。
http://www9.atwiki.jp/my-sql/pages/99.html
>あと、過去1年間の月毎の売り上げ個数などの場合
上記で日付を求めた後、YYYYMMの部分だけ切り出して、前方一致を条件にすればどうでしょう。
(SQLでは遅くなりそうですが)
No.1
- 回答日時:
言語、データベースの種類はさておき、
簡単な考え方を示します。
例えば『今日の日付』からは『年』『月』『日』『時刻』などが取得できます。
それを元にすれば、先月が何年の何月なのか、といった情報が取れます。
『売れた日』を日付型データで保持していると仮定すると、
本日 [2008/09/14] を基準にして昨日のデータが欲しい場合、
WHERE '2008/09/13 00:00:00' <= 売れた日
AND 売れた日 <= '2008/09/13 23:59:59'
といった感じでWHERE句を指定すれば、日付の範囲が取れますね。
以下のような書き方でも同じ意味になります。
WHERE 売れた日 BETWEEN '2008/09/13 00:00:00' AND '2008/09/13 23:59:59'
日付型データの扱い方についてはSQL関連のウェブサイト等を
参考にしていただくと理解が深まるかと思います。
この回答への補足
ありがとうございます。
PHPとMySQLを使っています。
例えば、今日の日付'2008/09/04'から、先月が何月だったか、などはどうやって取れるものなのでしょうか?
全部自動でできるようにしておきたいのです。
あと、過去1年間の月毎の売り上げ個数などの場合、一ヶ月の日数は一定ではないし、、計算の仕方がわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ビジネス・キャリア) 事業復活支援金の事前確認での売上高チェックについて 2 2022/03/26 13:47
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- 高校 日商簿記3級の勉強中なのですが 精算表が完成せず困っています。 こちらの問題の回答を教えていただきた 2 2023/03/02 09:07
- その他(趣味・アウトドア・車) 8月16日に発売される「櫻坂46カード付チョコウエハース」について 2 2022/08/12 23:56
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- 財務・会計・経理 【仕訳】集計されて引かれる販売手数料について 5 2023/04/26 15:32
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで月末の判断
-
開始と終了を指定して、その間...
-
アップロードしたファイル名に...
-
今日の日付から1週間のリスト
-
月曜日から始まる週間カレンダ...
-
Dosブロンプトでtabを出力したい
-
URLのパラメータをGETのままで...
-
Yahoo! JAPAN IDを新規取得でき...
-
「取得先」という表現について
-
asp.netでのセッションを使用し...
-
php 入力画面から確認表示画面...
-
バッチファイルでpingの結果を...
-
switch()文で値の大小比較
-
PLY yacc での IF 文実装
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
動的なPHPを静的なhtmlページに...
-
特別な四捨五入の計算方法について
-
フォームから送った半角カナの...
-
日付を基にした乱数生成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開始と終了を指定して、その間...
-
ファイル名に日付の挿入
-
昨日の日付を取得するVBscript
-
PHP 指定した期間だけ表示した...
-
Accessで、DAOでAddnew
-
C言語を使って、ある特定の日の...
-
codeigniterの時間設定
-
日付計算について
-
昨日の日付名でファイルを作成...
-
現在時刻をyyyymmddhhmmss形式...
-
substrの使い方について教えて...
-
差分の月数を算出する方法
-
1ヶ月後の日付を出力したい
-
経過期間計算がうまくいかない
-
C言語でシステム日付との差を...
-
今日の日付から1週間のリスト
-
アップロードしたファイル名に...
-
strtotime 日付の変換
-
PHPでmysqlを使ってます。日時...
-
6ヶ月前の日付を取得するにはど...
おすすめ情報