No.3ベストアンサー
- 回答日時:
やはり、日付型で持つべきです。
(1)編集関数(Format)が使える。
(2)日付用関数(DateAdd、DateDiff)が使える。
(3)○年△月第□☆曜日などはSQLで取得できる。
8月第3土曜日から日付を求めるのは簡単ではありません。
どうしてもとなると、上の記号に当たる部分(年、月、順位、曜日)を
1セットで記録しなければなりません。特定の値を求めるにあたって、
項目数が多いほど拙い設計と言えます。
ご回答ありがとうございます。
日付型で持つべきというご意見、非常に参考になります。
私の考えていた処理法はかなり拙い設計だったようです。
任意の年の8月第3土曜の日付、例えば「2008-08-16」というデータを所持していればそこから2009年の8月第3土曜が「2009-08-15」であるという算出は可能なのでしょうか。
No.4
- 回答日時:
データベースですから、日付+イベント情報というデータを蓄積することに意味があるのではないでしょうか。
>「2008-08-16」というデータを所持していればそこから2009年の8月第3土曜が「2009-08-15」であるという・・・
「○年△月の第3土曜日は何日か」というのは算術の問題で、データベースにどんなテーブル/レコードがあるか
という事象とは無関係です。登録されたデータの中から、8月第3土曜日にあるイベントを抽出するというのが
本筋のような気がします。参考までに第3土曜日を求める関数を記載します。
Function 第3土曜(ByVal 年 As Long, ByVal 月 As Long) As Date
Dim 日 As Date
日 = DateSerial(年, 月, 1)
第3土曜 = DateAdd("d", 21 - Weekday(日), 日)
End Function
ありがとうございます。
DBの本質的な部分を教えていただき大変勉強になりました。
テーブル/レコードの形式を決め、抽出法について考察しようと思います。
No.2
- 回答日時:
>「8月第3土」として所持したいのです。
>そしてそこから8/16という日にちを算出したいのですが。
この場合第3土というのが
(1)その月3回目の土曜日
(2)その月の1日の週を1週目とした3週目の土曜
によってやりかたは変わります。
また(2)の場合、
週の初めの日を月曜日とするか日曜日とするかで処理がかわります。
また、「8月第3土」で所持する場合、年情報もいれておかないと
日付を確定することはできません
No.1
- 回答日時:
たとえば、今日が何月何週目何曜日か?
(1)何月
SELECT MONTH(CURDATE());
(2)何週・・・ちょっと複雑
今月1日が年の中で何週目かもとめ、今日が年の中何週目かもとめる。
その差に1をたすと今月何週目かでる。
SELECT WEEK(CURDATE()) - WEEK(DATE_FORMAT(CURDATE(),"%Y-%m-01"))+1;
(3)何曜日
SELECT WEEKDAY(CURDATE());
ご回答ありがとうございます。
例えば8月第3土曜が8/16だとして、
DBは「8/16」ではなく「8月第3土」として所持したいのです。
そしてそこから8/16という日にちを算出したいのですが。
教えていただいた内容を参考にすると、
月の1日の曜日と何週目かを算出してそこから処理といった感じでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- 妊娠 赤ちゃんの大きさから決定した出産予定日について 6 2022/04/29 22:28
- カードローン・キャッシング 主人の事ですが信用情報機構jiccで開示してみたらアコム、アイフル2件ありました。 契約状態→契約終 3 2022/08/04 16:56
- Excel(エクセル) 【Excel関数】カレンダーで文字が入っていたら転記 4 2023/07/24 23:28
- 英語 英語の相の種類 Wikipediaでは He began to talk.(起動相) He cont 1 2023/06/26 11:54
- 派遣社員・契約社員 派遣仕事開始までの期間。 5月9日月曜日、派遣会社の紹介された仕事の職場見学をしてきました。3人応募 2 2022/05/09 20:48
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<SQL>重複しているデータの場合...
-
SQL文を教えてください。
-
複数のテーブルから値を合計出...
-
mysqlでunixtimeによる日付範囲...
-
日付検索で0001-01-01 00:00:00...
-
SQLで、同じ値が何回連続す...
-
下記の問合せを行うクエリを、 ...
-
MySQLで特定のグループの上位3...
-
SQL 重複しないJoinの仕方を教...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
2つの列が同じ値の行を取得するSQL
-
AccessのSQL文で1件のみヒット...
-
データ
-
単一グループのグループ関数で...
-
select文の実行結果に空白行を...
-
SELECT FOR UPDATE で該当レコ...
-
group byの並び順を変えるだけ...
-
Oracleで「文字が無効です」の...
-
トランザクションログを出力せ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のテーブルから値を合計出...
-
<SQL>重複しているデータの場合...
-
SQLです教えてくださいお願いし...
-
SQLです。下記の問合せを行うク...
-
下記の問合せを行うクエリを、 ...
-
SQL 重複しないJoinの仕方を教...
-
最新の日付と2番目の日付のデー...
-
mysqlに格納されている日付のデ...
-
DISTINCTROWについてです。
-
SQLで、同じ値が何回連続す...
-
直近1ヶ月に誕生日を迎える社員...
-
NULLは表示順最下位
-
MySQLで日付(date)型のdefaul...
-
MySQLで特定のグループの上位3...
-
MySQLのdatetime型に0月0日を格納
-
「8月の第3土日」をデータベ...
-
型変換
-
日付検索で0001-01-01 00:00:00...
-
Mysqlで最新の日付を持つデータ...
-
NULLの値ってupdateで評価され...
おすすめ情報