漢字で沙羅ドットコム・お寺さん向けのソフトウェア沙羅(紗羅・娑羅)

管理人ブログ

西暦と和暦、、、

コンバートしようとしたAccessデータに「誕生日和暦元号」「その数字年」だけがありました。
(月日がない)

そんな無茶な、、しかし、誕生日が正しく入っていないのに、旧暦や節分で年齢を出せとは、、、それは無理な話であります。(新暦でしたら出ますが)

とりあえず、新暦ベースでいきますと
沙羅に必要なのは西暦なので単に西暦だけを生成・セットしたい場合は、とりあえず和暦元号の空白文字を消し、数字を全部半角にして、元年⇒1 にして
更新クエリーで

UPDATE genzai_birth
SET seireki = 
  IIf(birthwareki= "令和", [wsarekinen] + 2018,
  IIf(birthwareki= "昭和", [wsarekinen] + 1925,
  IIf(birthwareki= "平成", [wsarekinen] + 1988,
  IIf(birthwareki= "明治", [wsarekinen] + 1867,
  IIf(birthwareki= "大正", [wsarekinen] + 1911, Null)))))

でとりあえず、、、よしとしましょう。

年号一覧表を作ってリンク張って更新したり日付型にして、云々、、、は遅いですもんね。

※sqlでは

UPDATE dbo.Genzai
SET 
    Birthwareki = genzai_birth.birthwareki,
    BirthJapanYear = genzai_birth.BirthJapanYear,
    birthnen = genzai_birth.birthnen
FROM dbo.Genzai
INNER JOIN dbo.genzai_birth ON dbo.Genzai.ID = dbo.genzai_birth.ID

これで、10万行の処理が一瞬で完了、、、、
と思いきや、、、

データの中に平成36年とかあったりして、、、結局何やらかんやらと2時間くらいかかってしまいました。。。。

ついでに干支の一括作成

UPDATE GENZAI
SET eto = 
  CASE ((birthNEN - 4) % 12)
    WHEN 0 THEN '子'
    WHEN 1 THEN '丑'
    WHEN 2 THEN '寅'
    WHEN 3 THEN '卯'
    WHEN 4 THEN '辰'
    WHEN 5 THEN '巳'
    WHEN 6 THEN '午'
    WHEN 7 THEN '未'
    WHEN 8 THEN '申'
    WHEN 9 THEN '酉'
    WHEN 10 THEN '戌'
    WHEN 11 THEN '亥'
    ELSE NULL
  END;

旧暦または基準日で干支を計算する場合、年の変わる基準日を’YYYY-MM-DD’として、、、

UPDATE your_table_name
SET eto = 
  CASE 
    WHEN birth_date >= CAST('YYYY-MM-DD' AS DATE) THEN
      CASE ((birth_year - 4) % 10)
        WHEN 0 THEN '甲'
        WHEN 1 THEN '乙'
        WHEN 2 THEN '丙'
        WHEN 3 THEN '丁'
        WHEN 4 THEN '戊'
        WHEN 5 THEN '己'
        WHEN 6 THEN '庚'
        WHEN 7 THEN '辛'
        WHEN 8 THEN '壬'
        WHEN 9 THEN '癸'
      END +
      CASE ((birth_year - 4) % 12)
        WHEN 0 THEN '子'
        WHEN 1 THEN '丑'
        WHEN 2 THEN '寅'
        WHEN 3 THEN '卯'
        WHEN 4 THEN '辰'
        WHEN 5 THEN '巳'
        WHEN 6 THEN '午'
        WHEN 7 THEN '未'
        WHEN 8 THEN '申'
        WHEN 9 THEN '酉'
        WHEN 10 THEN '戌'
        WHEN 11 THEN '亥'
      END
    ELSE NULL
  END;

コメント

この記事へのトラックバックはありません。

関連記事

最近の記事
  1. 定期預金・例:普通預金から定期預金へ移す時は『口座間移動』で(現金を預金する場合は預金です)
  2. 沙羅からシンサラにアップグレードしたい、、、場合は
  3. 口座振替依頼書の記入方法と送付先
  4. 【超重要!】PCシステム日付を「和暦」「外国暦」「曜日つき」には決してしないでください※「西暦日本語:yyyy/MM/dd (←短い形式)」にして下さい。
  5. 「家番号」とは別に「檀家さん番号」など『自由に番号をつけたい』⇒ユーザー設定で項目名を変更⇒※ゆうちょ振込用紙にも印字できます。※家番号は変更不可
  6. 検索エラーの原因(1)➡「ユーザー設定の項目に”,(コンマ)”や記号が入っています
  7. 沙羅での家番号の変更について(※できません)
  8. コンピュータにない文字はどうしましょう?
  9. 『このアドバタイズされたアプリケーションは安全でない可能性があるため、インストールされません。』
  10. アスクルのタックシール24面「U-248-404-RB12」をご利用の場合、エーワンの24面「28366」を選んで下さい。
logo