Q129:文字列で作ったデータを日付列の方にUPDATEしたら 0010/01/18 となった。
Q129-1:
10/01/18のテキスト文字列が入ったテキストデータを、別のSQLデータ(日付列)にしようとMZテーブルアップデートを行ったところ、文字が
2010/08/05 と 0010/01/18
と混在するようになりました。
一発で2010/01/18と、0の先頭を2にしたいのですが、よい対策はあるのでしょうか?
関連ファイル:Book1.xls
A129-1:
日付を修正したいデータが、データベースにあるのか、MZプラットフォームにあるのかによって対処法が異なります。
(1)データベースのテーブルを一括更新したい場合
MySQLの場合には、日付を加算する関数であるdate_addを用いて、以下のようなSQL文を実行しますと、
WHERE以下の条件を満たす日付列の日付を指定年数分加算できます。
UPDATE テーブル名 SET 列名 = date_add(列名, interval 年数 year) WHERE 条件
お送りいただいた例を参考にしますと、テーブル名はわかりませんが、以下のようにしますと、f4列の0010/12/31以前の日付に2000を加算できます。
UPDATE テーブル名 SET f4= date_add(f4, interval 2000 year)
WHERE f4<="0010/12/31"
減算したい場合にはdate_subを用います。
またyearをdayに変更しますと日単位で加算・減算が可能です。
SQL文はデータベースの種類により異なりますので、詳細につきましては各データベースの参考書をご覧下さい。
(2)MZプラットフォームのテーブルを一括更新したい場合
若干複雑になりますが、「カレンダー」コンポーネントを用いますと、日付データの前後判定、加算・減算等ができます。
テーブルデータから順次日付データを取得し、日付を比較して2000年を加算し、再度テーブルのセルに戻すという処理になると存じます。
サンプルアプリケーションを掲載いたしますのでご参照ください。
関連ファイル:日付加算.mzax