MDYをYMDに変換する、古くからの、tips(トリック)をご説明しましょう。
MMDDYY * 10000.01 = YYMMDDというものです。最後のフィールドは、6桁の整数フィールド出なくてはいけません。これは、以下のように証明できます。
MMDDYY * 10000.01
= MMDDYY * (10000 + 0.01)
= (MMDDYY * 10000 ) + (MMDDYY * 0.01)
= MMDDYY0000 + MMDD.YY
= MMDDYYMMDD.YY
= YYMMDD(6桁の整数フィールド)
というわけですね。
もし、MMDDYYYYをYYYYMMDDにする場合は、どうするのでしょう?それは、各自お考え下さいませ。YYMMDDからMMDDYYも、出来そうですね。上記の証明を、下から辿ると、わかりやすいかもしれません。
この方法が、非難の対象になるのは、多分、知らない人にとっては、未知の係数となり、ロジックが不鮮明になるからだと思います。利用する場合、あなたの会社の全ての関係者が、このトリックを知っているべきでしょう。
追記
YYMMDDをMMDDYYにする場合(最後は6桁整数に切り捨て)
MMDDYY
= YYMMDDYY.MMDD
= YYMMDD00 + YY.MMDD
= YYMMDD (100 + 0.0001)
= YYMMDD * 100.0001
MMDDYYYYをYYYYMMDDにする場合(最後は8桁整数に切り捨て)
YYYYMMDD
= MMDDYYYYMMDD.YYYY
= MMDDYYYY0000 + MMDD.YYYY
= (MMDDYYYY * 10000) + (MMDDYYYY * 0.0001)
= MMDDYYYY( 10000 + 0.0001)
= MMDDYYYY * 10000.0001
YYYYMMDDをMMDDYYYYにする場合(最後は8桁整数に切り捨て)
MMDDYYYY
= YYYYMMDDYYYY.MMDD
= YYYYMMDD0000 + YYYY.MMDD
= (YYYYMMDD * 10000) + (YYYYMMDD * 0.0001)
= YYYYMMDD (10000 + 0.0001)
= YYYYMMDD * 10000.0001
最後のトリックは、同じですね。なぜだか分かりますか。そうです、[YYYY][MMDD]の順番を変えて、[MMDD][YYYY]にするだけならば、前4桁と、後ろ4桁の交換にすぎないのですね。勿論、8桁に切り捨てた場合の事ですよ。
参考ページ
1998/10/15 |