生年月日のデータを元に年齢を自動算出する方法について
皆様、はじめまして。初めて道場に投稿します。
今回ですが、DataSet上に存在する社員テーブルの生年月日を元に現在の年齢を自動算出したいです。
DataFlowを新規作成しまして、下記のような変換ロジックで無理くり年齢算出を試みようと思ったのですが、
変換の手動実行では上手く動くものの、何故かDataFlowの自動実行では該当箇所でエラーになります。
変換例: (YEAR(CURDATE()) - YEAR(生年月日)) - (RIGHT(CURDATE(), 5) < RIGHT(生年月日, 5))
代替案として、BeastModeでも年齢算出も考えましたが下記の計算サンプル内に年齢の算出方法が存在しませんでした。
http://wiki.domo.com/confluence/pages/viewpage.action?pageId=76316983
どなたかご存じの方がいらっしゃいましたらご教示いただけますと幸いです。
ご協力のほど、よろしくお願いいたします。
Comments
-
私の手元で試してみたら特にエラーが起こらず実行できました。実際に書いたSQLとエラーメッセージを共有していただくことは可能でしょうか?また、関係ないかもしれませんが「生年月日」というマルチバイトのカラム名を扱う場合は`生年月日`のようにバッククォートでそのカラム名を囲う必要があります。
0 -
kennyさん、早速のコメントありがとうございます。
やはり、エラーが発生せず普通に実行出来ましたか。
生年月日のカラムにつきましては、2000-01-01のような日付形式でデータ値が入っております。
これは今更気が付いた事ですが、一部レコードで生年月日が未入力のレコードが存在しており、
一括実行でエラーが発生する原因もこちらの未入力が起因ではないかと感じてきました。
エラーメッセージは、DATAFLOW-5200:SQL action execution error [message=com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' MaestroSQLException{device='ec2-transformdb-03', sql='CREATE TABLE transform_data_2 AS select(以降、略)というようなエラー内容でした。変換の手動実行でエラーにならない理由は、DataFlow内の対象レコードが1万件マックスになっているため、
上記の生年月日が未入力データが含まれていなかっただけかもしれません。
まずは、私の方で未入力の値を変換して再度試してみます!0
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 311 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 3.8K Transform
- 656 Datasets
- 115 SQL DataFlows
- 2.2K Magic ETL
- 813 Beast Mode
- 3.3K Visualize
- 2.5K Charting
- 81 App Studio
- 45 Variables
- 771 Automate
- 190 Apps
- 481 APIs & Domo Developer
- 77 Workflows
- 23 Code Engine
- 36 AI and Machine Learning
- 19 AI Chat
- AI Playground
- AI Projects and Models
- 17 Jupyter Workspaces
- 410 Distribute
- 120 Domo Everywhere
- 280 Scheduled Reports
- 10 Software Integrations
- 142 Manage
- 138 Governance & Security
- 8 Domo Community Gallery
- 48 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 114 Community Announcements
- 4.8K Archive