| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「VB 有効期間に含まれるデータを判定」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==有効期間に含まれるデータを判定== [VB]{{category ロジック}} 有効期間[開始日(sd)~終了日(ed)]を持つデータに対し、 ある範…」)
 
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
 
==有効期間に含まれるデータを判定==
 
==有効期間に含まれるデータを判定==
[VB]{{category ロジック}}
+
[[VB]] | [[Category:ロジック]]
  
 
有効期間[開始日(sd)~終了日(ed)]を持つデータに対し、
 
有効期間[開始日(sd)~終了日(ed)]を持つデータに対し、
 
ある範囲[開始日(tsd)~終了日(ted)]に有効か否かを判定する。
 
ある範囲[開始日(tsd)~終了日(ted)]に有効か否かを判定する。
  
概念図
+
[[概念]]図
 
  '
 
  '
 
  '    tsd                        ted
 
  '    tsd                        ted
20行目: 20行目:
  
 
判定
 
判定
   If ( tsd <= ed  And ed  <= ted ) _      'data 1, data 3
+
   If ( tsd &lt;= ed  And ed  &lt;= ted ) _      'data 1, data 3
   Or ( tsd <= sd  And sd  <= ted ) _      'data 2, data 3
+
   Or ( tsd &lt;= sd  And sd  &lt;= ted ) _      'data 2, data 3
   Or ( sd  <= tsd And ted <= ed ) Then    'data 4
+
   Or ( sd  &lt;= tsd And ted &lt;= ed ) Then    'data 4
 
         ' 有効範囲にあるデータ
 
         ' 有効範囲にあるデータ
 
   End If
 
   End If
  
SQL
+
[[SQL]]
 
       sd  between tsd and ted
 
       sd  between tsd and ted
 
   or  ed  between tsd and ted
 
   or  ed  between tsd and ted
 
   or  tsd between sd  and ed
 
   or  tsd between sd  and ed
 
   or  ted between sd  and ed
 
   or  ted between sd  and ed

2020年2月16日 (日) 04:33時点における最新版

有効期間に含まれるデータを判定

VB |

有効期間[開始日(sd)~終了日(ed)]を持つデータに対し、 ある範囲[開始日(tsd)~終了日(ted)]に有効か否かを判定する。

概念

'
'     tsd                        ted
'     |-------------------------|           ' 対象範囲
'                                           ' --- 生存範囲
'  sd     ed               sd       ed      ' === 該当範囲
'1:+---====+               2:+===------+
'           sd            ed
'         3:+==============+
'  sd                               ed
'4:+---==========================----+
'
'

判定

 If ( tsd <= ed  And ed  <= ted ) _      'data 1, data 3
 Or ( tsd <= sd  And sd  <= ted ) _      'data 2, data 3
 Or ( sd  <= tsd And ted <= ed ) Then    'data 4
       ' 有効範囲にあるデータ
 End If

SQL

     sd  between tsd and ted
 or  ed  between tsd and ted
 or  tsd between sd  and ed
 or  ted between sd  and ed